Override - Für Spezialfälle

Oder: Bakterien passen nicht in's Haustier-Schema

Bakterien

Voraussetzungen für das Verständnis dieser Seite

Lernpfad "Vererbung I"

Für was brauche ich das?

Du hast eine Superklasse in einem Framework gefunden, die du für dein Projekt einsetzen und deshalb vererben möchtest. Diese Klasse passt eigentlich perfekt, mit Ausnahme einer Methode, die einfach nicht deinen Ansprüchen genügt. Theoretisch könntest du jetzt Einfluss nehmen im Code der Superklasse und die Methode hacken. Das empfiehlt sich aber nicht, denn jedes Mal, wenn du ein Update vom Framework vornimmst, musst du dich daran erinnern, den Hack wieder vorzunehmen.
Viel einfacher ist es, besagte Methode in der Superklasse in Ruhe zu lassen und in deiner Subklasse einen Override vorzunehmen.

Beispielskript - Ausgangslage

PHP kennt das Schlüsselwort override nicht

Overrides kann man in PHP ganz leicht notieren. Es genügt bereits, dass die Methode der Subklasse den gleichen Namen und die gleichen Parameter wie die zu überschreibende Methode der Superklasse hat (d. h. sie müssen die gleiche "Signatur" haben).

In anderen Programmiersprachen müsste man die überschreibende Methode explizit mit dem Schlüsselwort override kennzeichnen. PHP kennt dieses Wort jedoch nicht.

Tipp: Overrides immer gut kommentieren

Weil dies so einfach geht, sind Missverständnisse jedoch vorprogrammiert! Verzichte wenn möglich auf dieses Konzept, oder kommentiere aus diesem Grund overrides gut, falls du sie wirklich brauchst!