PHP Beitrag

Vererbung von Klassen

Können mehrere Klassen vererbt werden?

NEIN – jede Klasse kann nur von EINER weiteren Klasse erben.

Das Final-Schlüsselwort

Sowohl Klassen als auch Methoden einer Klasse können „final“ sein.
Das bedeutet, dass diese nicht überschrieben werden können, sie sind final also endgültig. Wird zum Beispiel eine finale Methode vererbt, kann diese nicht überschireben werden da sonst ein Fatal Error geworfen wird.

Können Interfaces untereinander erben?

JA – Interfaces können untereinander vererbt werden.

interface A extends interfaceB, interfaceC, usw...

Können mehrere Interfaces vererbt werden?

JA – eine Klasse kann mehrere Interfaces erben.

class Demo implements interfaceA, interfaceB, interfaceC, usw...

Was sind Interfaces?

Kurz und knapp: Es sind Schnittstellen die festlegen wie eine Klasse auszusehen hat.

Interfaces erlauben die Erzeugung von Code, der spezifiziert, welche Methoden eine Klasse implementieren muss, ohne definieren zu müssen, wie diese Methoden behandelt werden. Alle in einem Interface deklarierten Methoden müssen public sein; dies liegt in der Natur eines Interfaces. Ein Interface beschreibt also, wie eine Klasse aussehen muss, es ist quasi eine Richtlinie für andere Programmierer. Wird diese Richtlinie missachtet, hat das einen Fehler zur Folge.

interface Technik {
    
    public function Fensterheber();
    public function Motor();
    public function Kupplung();
}

class Auto implements Technik {

    public function Fensterheber() {}
    public function Motor() {}
    public function Kupplung() {}
}

Was sind abstrakte Klassen?

Abstrakte Klassen sind Interfaces mit zusätzlichen Methoden.

Von einer abstrakten Klasse selbst, darf keine Instanz erzeugt werden, sie darf nur vererbt werden.

Die erbende Klasse muss alle Eigenschaften und Methoden der abstrakten Klasse aufweisen, andernfalls wird ein „Fatal Error“ geworfen.

Man könnte also sagen, das abstrakte Klassen eine Art Bauplan für alle erbenden Klassen sind oder erweiterte Interfaces.

abstract class Starten {

    abstract protected function KnopfDrücken();
}

class Motor extends Starten {

    protected function KnopfDrücken() { }
}

class Autoradio extends Starten {

    protected function KnopfDrücken() { }
}
Vererbung von Klassen
© 2017 Gino Dola
PHP & Web Developer

Schreibe einen Kommentar