Heim > Artikel > Backend-Entwicklung > Kann PHP abstrakte Methoden definieren?
php kann abstrakte Methoden definieren. Um die Klassenvererbung zu erleichtern, wird in PHP5 das Konzept abstrakter Methoden eingeführt. Bei der Deklaration abstrakter Methoden in PHP wird die Schlüsselwortänderung „abstrakt“ verwendet, und die Syntax lautet „abstrakte Zugriffsberechtigungsmodifikatorfunktion“. Methodenname (Parameterliste) );".
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 7.1, DELL G3-Computer
php kann abstrakte Methoden definieren.
In objektorientierten Sprachen kann eine Klasse eine oder mehrere Unterklassen haben, und jede Klasse sollte mindestens eine öffentliche Methode als Einstiegspunkt für den Zugriff von externem Code haben.
Abstrakte Klassen und abstrakte Methoden sind ein Konzept, das in PHP5 eingeführt wurde, hauptsächlich um die Klassenvererbung zu erleichtern.
Abstrakte Methode und abstrakte Methode
Abstrakte Methode ist eine Methode ohne Methodenkörper. Der sogenannte Methodenkörper ohne Methode bedeutet, dass bei der Deklaration einer Methode keine geschweiften Klammern {} und der darin enthaltene Inhalt vorhanden sind , aber direkt in Beenden Sie den Methodennamen mit einem Semikolon. Verwenden Sie außerdem das Schlüsselwort „abstract“, wenn Sie eine abstrakte Methode deklarieren. Das Format ist wie folgt:
abstract 访问权限修饰符 function 方法名1(参数列表); abstract 访问权限修饰符 function 方法名2(参数列表);
Beispiel:
abstract function fun1(); abstract function fun2();
Das obige Beispiel ist die abstrakte Methode „fun1()“ und „fun2()“ ohne einen durch „abstract“ modifizierten Methodenkörper Auf die abstrakte Methode muss ein Semikolon folgen.
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 geben und Mitgliedsattribute, die nicht abstrakt sind. Solange es jedoch eine abstrakte Methode gibt, muss die Klasse als abstrakte Klasse deklariert und mit „abstrakt“ 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 haben durch Klassen instanziierte Objekte verwendet, 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 die abstrakte Klasse erbt. Die Unterklasse muss alle abstrakten Methoden in der übergeordneten Klasse implementieren. Andernfalls ist die Unterklasse immer noch eine abstrakte Klasse und kann die Klasse immer noch nicht instanziieren Müssen Sie von der abstrakten Klasse erben? Denn manchmal müssen wir von abstrakten Klassen erben, um einige Funktionen zu implementieren, 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(); //子类可以实例化对象,因为实现了父类中所有抽象方法 ?>
Empfohlenes Lernen: „PHP Video-Tutorial》
Das obige ist der detaillierte Inhalt vonKann PHP abstrakte Methoden definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!