Heim > Artikel > Backend-Entwicklung > Wie man die abstrakten Methoden von PHP versteht
Abstrakte PHP-Methoden verstehen: 1. In der OOP-Sprache verfügt jede Klasse über mindestens eine öffentliche Methode als Schnittstelle für den Zugriff auf externen Code. 2. In der Klasse A-Methode definiert Ohne Methodenkörper handelt es sich um eine abstrakte Methode.
Die abstrakte Methode von PHP ist:
In der OOP-Sprache kann eine Klasse eine oder mehrere Unterklassen haben, und jede Klasse verfügt über mindestens eine öffentliche Methode als Schnittstelle für externen Code, um darauf zuzugreifen. Abstrakte Methoden werden eingeführt, um die Vererbung zu erleichtern Schauen wir uns zunächst die Definitionen abstrakter Klassen und abstrakter Methoden an, bevor wir deren Verwendung erläutern.
Was ist eine abstrakte Methode? Die Methode, die wir in der Klasse ohne Methodenkörper definieren, ist eine abstrakte Methode. Der sogenannte „keine Methodenkörper“ bedeutet, dass in der Methodendeklaration keine geschweiften Klammern vorhanden sind, sondern bei der Deklaration direkt nach dem Methodennamen hinzugefügt werden endet mit einem Semikolon. Außerdem muss bei der Deklaration einer abstrakten Methode ein Schlüsselwort „abstract“ hinzugefügt werden, um sie zu ändern abstract function fun1();
abstract function fun2();
Das obige Beispiel ist die abstrakte Methode „fun1()“ und „fun2(“ ohne Methodenkörper geändert durch „abstract“ )“, vergessen Sie nicht, dass nach der abstrakten Methode ein Semikolon steht; was ist also eine abstrakte Klasse? Solange eine Methode in einer Klasse eine abstrakte Methode ist, muss die Klasse als abstrakte Klasse definiert werden und die abstrakte Klasse muss auch mit dem Schlüsselwort „abstract“ geändert werden. In einer abstrakten Klasse kann es Methoden und Mitglieder geben Attribute, die nicht abstrakt sind, aber solange es sich bei einer Methode um eine abstrakte Methode handelt, muss die Klasse als abstrakte Klasse deklariert und mit „abstract“ dekoriert werden.
abstract class Demo { var $test; abstract function fun1(); abstract function fun2(); function fun3(){ ... } }
Im obigen Beispiel wird eine abstrakte Klasse „Demo“ mit „abstract“ definiert und geändert. In dieser Klasse sind ein Mitgliedsattribut „$test“ und zwei abstrakte Methoden „fun1“ und „fun2“ definiert eine nicht abstrakte Methode fun3(); wie verwenden wir also abstrakte Klassen? Der wichtigste Punkt ist, dass abstrakte Klassen keine Instanzobjekte erzeugen können und daher nicht direkt verwendet werden können. Wir verwenden Objekte, die durch Klassen instanziiert werden, sodass abstrakte Klassen keine Instanzobjekte erzeugen können die Verwendung der Deklaration einer abstrakten Klasse? Wir verwenden abstrakte Methoden als Vorlagen für das Überladen von Unterklassen. Das Definieren einer abstrakten Klasse entspricht der Definition einer Spezifikation, die von Unterklassen verlangt, dass sie konform sind. Nachdem die Unterklasse die abstrakte Klasse geerbt hat, werden die abstrakten Methoden nach Bedarf von Unterklassen implementiert.
Die Unterklasse muss alle abstrakten Methoden in der übergeordneten Klasse implementieren, sonst gibt es noch abstrakte Methoden in der Unterklasse.Dann ist die Unterklasse immer noch eine abstrakte Klasse und kann die Klasse immer noch nicht instanziieren. Warum müssen wir erben? aus der abstrakten Klasse? Denn manchmal müssen wir einige Funktionen von einer abstrakten Klasse erben, sonst können Sie diese Funktionen nicht implementieren. Wenn Sie eine abstrakte Klasse erben, müssen Sie die abstrakten Methoden in der Klasse implementieren. <?
abstract class Demo
{
var $test;
abstract function fun1();
abstract function fun2();
function fun3() {
...
}
}
$demo=new Demo(); //抽象类不能产生实例对象,所以这样做是错的,实例化对象交给子类
class Test extends Demo
{
function fun1() {
...
}
function fun2() {
...
}
}
$test = new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法
?>
PHP-Programmierung
Das obige ist der detaillierte Inhalt vonWie man die abstrakten Methoden von PHP versteht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!