Heim > Backend-Entwicklung > PHP-Problem > Wie man die abstrakten Methoden von PHP versteht

Wie man die abstrakten Methoden von PHP versteht

coldplay.xixi
Freigeben: 2023-03-07 09:12:02
Original
2536 Leute haben es durchsucht

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.

Wie man die abstrakten Methoden von PHP versteht

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();
Nach dem Login kopieren
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(){
        ...
    }
}
Nach dem Login kopieren

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(); //子类可以实例化对象,因为实现了父类中所有抽象方法
?>
Nach dem Login kopieren

Verwandte kostenlose Lernempfehlungen :
PHP-Programmierung

(Video)

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage