Objektorientiert Programme werden durch eine hierarchische Struktur von Klassen erstellt. In Einzelvererbungssprachen wie PHP ist die Klassenvererbung baumartig. Eine Stammklasse hat eine oder mehrere Unterklassen
Natürlich kann es mehrere Stammklassen geben, um unterschiedliche Funktionen zu implementieren. In einem gut gestalteten System sollte jede Stammklasse über eine nützliche Schnittstelle verfügen Wird vom Anwendungscode verwendet. Wenn unser Anwendungscode für die Arbeit mit der Stammklasse ausgelegt ist, kann er auch mit jeder Unterklasse funktionieren, die von der Stammklasse erbt.
Abstrakte Methoden sind wie Platzhalter für allgemeine Methoden in Unterklassen (Nehmen Sie Platz ein, funktionieren Sie aber nicht.) Sie unterscheiden sich von allgemeinen Methoden. Wenn eine oder mehrere abstrakte Methoden in der Klasse vorhanden sind, wird diese Klasse zu einer abstrakten Klasse Sie können keine abstrakten Klassen instanziieren und dann Unterklassen instanziieren.
Wenn Sie alle abstrakten Methoden überschreiben, wird die Unterklasse zu einer normalen Klasse. Wenn Sie nicht alle Methoden überschreiben, ist die Unterklasse immer noch abstrakt. Wenn eine Klasse abstrakte Methoden enthält (auch nur eine), müssen Sie vor dem Schlüsselwort „class“ deklarieren, dass sie abstrakt ist Die Deklaration abstrakter Methoden unterscheidet sich von der Deklaration allgemeiner Methoden. Sie werden nicht wie allgemeine Methoden im Hauptteil in geschweifte Klammern eingeschlossen und enden mit einem Semikolon Da es jedoch unmöglich ist, die Fläche der Figur zu bestimmen, ohne die Form zu kennen, deklarieren wir die getArea-Methode als abstrakt. Sie können ein Shape-Objekt nicht instanziieren, aber Sie können davon erben oder verwenden es in einem
Ausdruck
, wie in Beispiel 6.13. Wenn Sie eine Klasse nur mit abstrakten Methoden definieren, definieren Sie eine Schnittstelle implementiert Schlüsselwörter. Sie können „interface“ anstelle von „abstract class“ und „implements“ anstelle von „extends“ verwenden, um Ihre Klassendefinition zu deklarieren, oder Sie können eine „myClass“-Implementierung gemäß „myIterface“ verwenden persönliche Präferenz.
Code
Laufergebnisse:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Codebeispiele für abstrakte PHP-Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!