Vererbung in PHP

Auch Vererbung wird beim objektorientierten Ansatz von PHP unterstützt. Erfahren Sie hier, wie Vererbung im PHP Code aussieht.

Grundlegende Kentnisse in der objektorientierten Programmierung sind Voraussetzung um diesen Artikel verstehen zu können, es geht primär um die Syntax bei Vererbung in PHP

Voraussetzung für die hier gezeigten PHP-Scripte: PHP 5

Oberklassen und Unterklassen

Um Vererbung deutlich zu machen eignet sich z.B. die Oberklasse Fahrzeug mit den Unterklassen Boot und Pkw. In folgendem Code werden einige Besonderheiten in der Vererbung von PHP exemplarisch angewandt und weiter unten nocheinmal aufgegriffen und erklärt:


PHP-Script

<?php
class Fahrzeug {
    protected 
$farbe;
    private 
$id;
    function 
__construct($color) {
        
$this->farbe $color;
    }
    function 
fahren() {
        return 
"brumm brumm";
    }
    function 
hupen() {
        return 
"tuut tuut";
    }
}
class 
Boot extends Fahrzeug {
    function 
__construct($color) {
         
parent::__construct($color);
    }
    function 
hupen() {
        return 
"TUUT TUUT";
    }
    function 
kentern() {
        return 
"platsch!";
    }
}
class 
Pkw extends Fahrzeug {
    private 
$kennzeichen;
    function 
__construct($color$sign) {
         
parent::__construct($color);
         
$this->kennzeichen $sign;
    }
    function 
handbremseZiehen() {
        
#...
    
}
}

##Beispiele fuer Instanzen:

$boot = new Boot("rot");
$boot->hupen(); ###Ausgabe: TUUT TUUT

$auto = new Pkw("blau""TM-4711");
$auto->hupen(); ###Ausgabe: tuut tuut


?>
1

Erläuterungen: 

Wie leicht zu erkennen ist, erben Boot und Pkw von Fahrzeug. Dies wird mittels des Schlüsselworts extends realisiert.

 

Mehrfachvererbung gibt es nicht, eine Klasse kann immer nur von einer Klasse erben. Alternativ kann auch mit Interfaces gearbeitet werden.

 

Die Klasse Boot und Pkw haben Zugriff auf die Variable $farbe (protected) und auf die Methoden der Oberklasse (automatisch auf public), nicht aber auf die private Variable $id.

(Mehr zu Sichtbarkeiten von Methoden/Variablen siehe: Klassen in PHP Abschnitt private,protected,public).

 

Die Klasse Boot überschreibt die Methode hupen() aus ihrer Oberklasse. Dadruch ändert sich die Ausgabe wie im Code beispielhaft dargestellt.

 

Der Konstruktor der Vaterklasse ist über das Schlüsselwort parent erreichbar und kann bei Bedarf mit parent::__construct(...) aufgerufen werden.

Weiterlesen

Hier finden Sie weitere Artikel zum Thema Objektorientierung in PHP auf Computer-Masters.de

Anzeige: