OOP in PHP – Teil 9: Vererbung Sichtbarkeiten

Wie im vorherigen Artikel schon angekündigt haben wir die Möglichkeit, zu bestimmen, welche Funktionalitäten unserer Klassen nun vererbt werden sollen und welche nicht. Die einfachste und meist genutzte Möglichkeit dafür sind die Sichtbarkeiten, welche wir bereits früher angesprochen hatten.

Sichtbarkeiten aufgefrischt

Die Sichtbarkeiten wurden bereits in einem früheren Artikel durchgesprochen (auch schon mit einem Hinweis auf die Vererbung um die wir uns nun endlich kümmern) aber hier nochmal eine kurze Zusammenfassung.

Es gibt drei Sichtbarkeiten, die ich einem Attribut oder einer Methode vorstellen kann: private, protected und public.

  • private ermöglicht den Zugriff auf das Attribut / die Methode NUR von innerhalb der eigenen Klasse
  • protected gewährt den Zugriff von innerhalb der eigenen Klasse UND innerhalb von Kindklassen
  • public lässt den Zugriff von überall zu

Anhand dieser Auflistung sehen wir schon, dass protected generell erst jetzt Sinn macht, wo wir die Vererbung ins Spiel bringen. Aber sehen wir uns doch auch hier wieder ein Beispiel an und erweitern die Klassen aus dem vorherigen Artikel.

Hier sehen wir alle drei Sichtbarkeiten in einem Beispiel verpackt. Von außerhalb der Klassen ist ausschließlich die Methode statistiken_anzeigen() aufrufbar. Diese steht allerdings nur in einem BMW zur Verfügung und greift dabei auf die Methode benzinverbrauch_ermitteln() der Elternklasse zu. Versuchen wir, diese von außerhalb der Klasse aufzurufen, fliegt uns unser Programm mit einem Fehler um die Ohren – der Zugriff ist schließlich protected.

Dazu gibt es noch die Methode motor_aktivieren(). Diese ist private, kann also ausschließlich innerhalb der Auto Klasse verwendet werden. Auch Objekte vom Typ BMW haben auf diese Methode keinen Zugriff (was natürlich realistisch keinen Sinn macht aber ist ja nur ein Beispiel ;)).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*