<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=Klassabstraktion</id>
	<title>Klassabstraktion - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=Klassabstraktion"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=Klassabstraktion&amp;action=history"/>
	<updated>2026-04-28T20:21:05Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=Klassabstraktion&amp;diff=3206&amp;oldid=prev</id>
		<title>Admin: /* Klassabstraktion ¶ */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=Klassabstraktion&amp;diff=3206&amp;oldid=prev"/>
		<updated>2024-08-18T19:11:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Klassabstraktion ¶&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 18 augusti 2024 kl. 19.11&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Rad 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rad 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Klassabstraktion &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;¶ &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Klassabstraktion &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;PHP har abstrakta klasser och metoder. Klasser som definieras som abstrakta kan inte instansieras, och alla klasser som innehåller minst en abstrakt metod måste också vara abstrakta. Metoder som definieras som abstrakta deklarerar endast metodens signatur; de kan inte definiera implementeringen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;PHP har abstrakta klasser och metoder. Klasser som definieras som abstrakta kan inte instansieras, och alla klasser som innehåller minst en abstrakt metod måste också vara abstrakta. Metoder som definieras som abstrakta deklarerar endast metodens signatur; de kan inte definiera implementeringen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l95&quot;&gt;Rad 95:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rad 95:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mrs. Pacwoman&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mrs. Pacwoman&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Sidslut =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Sidslut =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.abstract.php&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.abstract.php&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.linux.se/index.php?title=Klassabstraktion&amp;diff=3205&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;== Klassabstraktion ¶ == PHP har abstrakta klasser och metoder. Klasser som definieras som abstrakta kan inte instansieras, och alla klasser som innehåller minst en abstrakt metod måste också vara abstrakta. Metoder som definieras som abstrakta deklarerar endast metodens signatur; de kan inte definiera implementeringen.  När en klass ärver från en abstrakt klass måste alla metoder som är markerade som abstrakta i föräldrarklassens deklaration definieras av bar...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=Klassabstraktion&amp;diff=3205&amp;oldid=prev"/>
		<updated>2024-08-18T19:11:31Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;== Klassabstraktion ¶ == PHP har abstrakta klasser och metoder. Klasser som definieras som abstrakta kan inte instansieras, och alla klasser som innehåller minst en abstrakt metod måste också vara abstrakta. Metoder som definieras som abstrakta deklarerar endast metodens signatur; de kan inte definiera implementeringen.  När en klass ärver från en abstrakt klass måste alla metoder som är markerade som abstrakta i föräldrarklassens deklaration definieras av bar...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Klassabstraktion ¶ ==&lt;br /&gt;
PHP har abstrakta klasser och metoder. Klasser som definieras som abstrakta kan inte instansieras, och alla klasser som innehåller minst en abstrakt metod måste också vara abstrakta. Metoder som definieras som abstrakta deklarerar endast metodens signatur; de kan inte definiera implementeringen.&lt;br /&gt;
&lt;br /&gt;
När en klass ärver från en abstrakt klass måste alla metoder som är markerade som abstrakta i föräldrarklassens deklaration definieras av barnklassen och följa de vanliga reglerna för arv och signaturkompatibilitet.&lt;br /&gt;
&lt;br /&gt;
=== Exempel #1 Abstrakt klassexempel ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
abstract class AbstractClass&lt;br /&gt;
{&lt;br /&gt;
    // Tvinga den ärvande klassen att definiera denna metod&lt;br /&gt;
    abstract protected function getValue();&lt;br /&gt;
    abstract protected function prefixValue($prefix);&lt;br /&gt;
&lt;br /&gt;
    // Gemensam metod&lt;br /&gt;
    public function printOut() {&lt;br /&gt;
        print $this-&amp;gt;getValue() . &amp;quot;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class ConcreteClass1 extends AbstractClass&lt;br /&gt;
{&lt;br /&gt;
    protected function getValue() {&lt;br /&gt;
        return &amp;quot;ConcreteClass1&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function prefixValue($prefix) {&lt;br /&gt;
        return &amp;quot;{$prefix}ConcreteClass1&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class ConcreteClass2 extends AbstractClass&lt;br /&gt;
{&lt;br /&gt;
    public function getValue() {&lt;br /&gt;
        return &amp;quot;ConcreteClass2&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function prefixValue($prefix) {&lt;br /&gt;
        return &amp;quot;{$prefix}ConcreteClass2&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$class1 = new ConcreteClass1;&lt;br /&gt;
$class1-&amp;gt;printOut();&lt;br /&gt;
echo $class1-&amp;gt;prefixValue(&amp;#039;FOO_&amp;#039;) .&amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$class2 = new ConcreteClass2;&lt;br /&gt;
$class2-&amp;gt;printOut();&lt;br /&gt;
echo $class2-&amp;gt;prefixValue(&amp;#039;FOO_&amp;#039;) .&amp;quot;\n&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Utdata från exemplet ovan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ConcreteClass1&lt;br /&gt;
FOO_ConcreteClass1&lt;br /&gt;
ConcreteClass2&lt;br /&gt;
FOO_ConcreteClass2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exempel #2 Abstrakt klassexempel ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
abstract class AbstractClass&lt;br /&gt;
{&lt;br /&gt;
    // Vår abstrakta metod behöver bara definiera de nödvändiga argumenten&lt;br /&gt;
    abstract protected function prefixName($name);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class ConcreteClass extends AbstractClass&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    // Vår barnklass kan definiera valfria argument som inte finns i föräldrarnas signatur&lt;br /&gt;
    public function prefixName($name, $separator = &amp;quot;.&amp;quot;) {&lt;br /&gt;
        if ($name == &amp;quot;Pacman&amp;quot;) {&lt;br /&gt;
            $prefix = &amp;quot;Mr&amp;quot;;&lt;br /&gt;
        } elseif ($name == &amp;quot;Pacwoman&amp;quot;) {&lt;br /&gt;
            $prefix = &amp;quot;Mrs&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            $prefix = &amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        return &amp;quot;{$prefix}{$separator} {$name}&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$class = new ConcreteClass;&lt;br /&gt;
echo $class-&amp;gt;prefixName(&amp;quot;Pacman&amp;quot;), &amp;quot;\n&amp;quot;;&lt;br /&gt;
echo $class-&amp;gt;prefixName(&amp;quot;Pacwoman&amp;quot;), &amp;quot;\n&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Utdata från exemplet ovan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Mr. Pacman&lt;br /&gt;
Mrs. Pacwoman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Sidslut =&lt;br /&gt;
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.abstract.php&lt;br /&gt;
&amp;lt;BR&amp;gt;[[PHP]]&lt;br /&gt;
&amp;lt;BR&amp;gt;[[Språkreferens]]&lt;br /&gt;
&amp;lt;BR&amp;gt;[[Språkreferens#Klasser_och_Objekt]]&lt;br /&gt;
[[Kategori:Php]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>