Was ist eine abstrakte Klasse in PHP?
Wie kann es verwendet werden?
php
oop
abstract-class
udaya
quelle
quelle
Antworten:
Eine abstrakte Klasse ist eine Klasse, die mindestens eine abstrakte Methode enthält, eine Methode ohne tatsächlichen Code, nur den Namen und die Parameter, und die als "abstrakt" markiert wurde.
Der Zweck dieses Vorgangs besteht darin, eine Art Vorlage bereitzustellen, von der geerbt werden kann, und die erbende Klasse zu zwingen, die abstrakten Methoden zu implementieren.
Eine abstrakte Klasse ist also etwas zwischen einer regulären Klasse und einer reinen Schnittstelle. Schnittstellen sind auch ein Sonderfall von abstrakten Klassen, bei denen ALLE Methoden abstrakt sind.
Weitere Informationen finden Sie in diesem Abschnitt des PHP-Handbuchs.
quelle
1. Abstrakte Klasse kann nicht instanziiert werden : Klassen, die als abstrakt definiert sind, dürfen nicht instanziiert werden, und jede Klasse, die mindestens eine abstrakte Methode enthält, muss ebenfalls abstrakt sein.
Beispiel unten:
2. Jede Klasse, die mindestens eine abstrakte Methode enthält, muss ebenfalls abstrakt sein : Die abstrakte Klasse kann abstrakte und nicht abstrakte Methoden enthalten, muss jedoch mindestens eine abstrakte Methode enthalten. Wenn eine Klasse mindestens eine abstrakte Methode hat, muss die Klasse als abstrakt deklariert werden.
Beispiel unten:
3. Eine abstrakte Methode darf keinen Body enthalten : Als abstrakt definierte Methoden deklarieren einfach die Signatur der Methode - sie können die Implementierung nicht definieren. Eine nicht abstrakte Methode kann jedoch die Implementierung definieren.
4. Beim Erben von einer abstrakten Klasse müssen alle in der Klassendeklaration des übergeordneten Elements als abstrakt gekennzeichneten Methoden vom Kind definiert werden : Wenn Sie eine abstrakte Klasse erben, müssen Sie Implementierungen für alle darin enthaltenen abstrakten Methoden bereitstellen.
5. Gleiche (oder weniger eingeschränkte) Sichtbarkeit : Beim Erben von einer abstrakten Klasse müssen alle in der Klassendeklaration des Elternteils als abstrakt gekennzeichneten Methoden vom Kind definiert werden. Darüber hinaus müssen diese Methoden mit derselben (oder einer weniger eingeschränkten) Sichtbarkeit definiert werden. Wenn die abstrakte Methode beispielsweise als geschützt definiert ist, muss die Funktionsimplementierung entweder als geschützt oder öffentlich, jedoch nicht als privat definiert werden.
6. Die Signaturen der abstrakten Methoden müssen übereinstimmen : Beim Erben von einer abstrakten Klasse müssen alle in der Klassendeklaration des Elternteils als abstrakt gekennzeichneten Methoden vom Kind definiert werden. Die Signaturen der Methoden müssen übereinstimmen, dh die Typhinweise und die Anzahl der erforderlichen Argumente müssen gleich sein. Wenn die untergeordnete Klasse beispielsweise ein optionales Argument definiert, bei dem die Signatur der abstrakten Methode dies nicht tut, liegt kein Konflikt in der Signatur vor.
7. Abstrakte Klasse unterstützt keine Mehrfachvererbung : Abstrakte Klasse kann eine andere abstrakte Klasse erweitern, Abstrakte Klasse kann die Implementierung der Schnittstelle bereitstellen. Sie unterstützt jedoch keine Mehrfachvererbung.
Das folgende Beispiel führt zu einem schwerwiegenden Fehler: Klasse 'Pferd' wurde nicht gefunden
quelle
Es gibt gute Erklärung, dass hier .
quelle
Abstrakte Klasse
1. Enthält eine abstrakte Methode
2. Kann nicht direkt initialisiert werden
3. Kann kein Objekt der abstrakten Klasse erstellen
4. Wird nur für Vererbungszwecke verwendet
Abstrakte Methode
1. Kann keinen Body enthalten
2. Kann nicht als privat definiert werden
3. Untergeordnete Klassen müssen die in der abstrakten Klasse deklarierten Methoden definieren
Beispielcode:
Ausgabe:
quelle
quelle
Abstrakte Klassen sind solche Klassen, die nicht direkt initialisiert werden können. Mit anderen Worten können wir sagen, dass abstrakte Klassen solche Klassen sind, deren Objekt nicht direkt erstellt werden kann. In PHP werden abstrakte Klassen mit dem Schlüsselwort abstract herausgefordert .
Um eine Klasse abstrakt zu werden, muss mindestens eine Methode der Klasse abstrakt sein.
Einzelheiten zur abstrakten Klasse finden Sie in meinem Blog zur abstrakten Klasse in PHP .
quelle
Eine abstrakte Klasse ist wie die normale Klasse, die Variablen enthält. Sie enthält geschützte Variablen. Funktionen. Sie enthält den Konstruktor. Nur eines ist anders. Sie enthält eine abstrakte Methode.
Die abstrakte Methode bedeutet eine leere Methode ohne Definition, so dass nur ein Unterschied in der abstrakten Klasse kein Objekt der abstrakten Klasse erstellen kann
Abstract muss die abstrakte Methode enthalten und diese Methoden müssen in ihrer ererbenden Klasse definiert sein.
quelle