extends

Aus php bar
Wechseln zu: Navigation, Suche

Mit dem Schlüsselwort extends erbt eine Klasse alle Eigenschaften und Methoden der referenzierten Klasse. Dabei wird die vererbende Klasse als Elternklasse und die erbende Klasse als Kindklasse bezeichnet, entsprechend der Vererbung bei Menschen.

1 class foo {
2   function bar () {
3     // Mache etwas nuetzliches
4   }
5 }
6 
7 class foobar extends foo {
8   // Mache etwas anderes
9 }


Klasse foobar hat von der Klasse foo die Methode bar geerbt, also ist diese Funktion auch in der Klasse foobar vorhanden. Jede Methode und jede Eigenschaft die in der Elternklasse (parent) vorhanden ist, ist automatisch in der Kindklasse vorhanden, dieses Konzept wird Vererbung genannt. Voraussetzung hierfür ist, dass die Kindklasse keine Methode oder Eigenschaft des gleichen Namens aufweist, da die geerbte Methode oder Eigenschaft überschrieben wird. Des Weiteren kann durch Verwendung von speziellen Schlüsselwörtern (private, protected und public) das Vererbungskonzept kontrolliert werden.

Abstrakte Methoden der Elternklasse werden ebenso nicht übernommen, da sie selbst keine konkrete implementierung darstellen. Kindklassen müssen entweder diese Methoden selbst abstrakt definieren oder eine konkrete Implementierung dieser Methode beinhalten.

 abstract class foo {
   abstract public function bar();
 }
 
 // Eine Moeglichkeit
 abstract class bar {
   abstract public function bar();
 }
 
10 // Andere Moeglichkeit
11 class bla {
12   public function bar() {
13     // Mache etwas
14   }
15 }
16 
17 // Funktioniert nicht
18 class blub {
19   // Alles ausser der Methode bar
20 }
21 
22 // Funktioniert nicht, da eine Klasse, die abstrakte Methoden besitzt, selbst abstrakt ist
23 class boing {
24   abstract public class bar();
25 }



Meine Werkzeuge