Heim  >  Artikel  >  Backend-Entwicklung  >  Abstrakte Methoden und abstrakte Klassen in PHP

Abstrakte Methoden und abstrakte Klassen in PHP

高洛峰
高洛峰Original
2017-02-18 16:37:311280Durchsuche

1. Was ist eine abstrakte Methode?

Die Methoden, die wir in der Klasse ohne Methoden definieren, sind abstrakte Methoden. Der sogenannte „Kein Methodenkörper“ bedeutet, dass bei der Deklaration keine geschweiften Klammern und der darin enthaltene Inhalt vorhanden sind, sondern bei der Deklaration direkt ein Semikolon nach dem Methodennamen hinzugefügt wird. Darüber hinaus muss die Methode bei der Deklaration einer abstrakten Methode auch ein Schlüsselwort hinzufügen . „abstrakt“ zum Ändern.

Zum Beispiel:
abstrakte Funktion fun1();
abstrakte Funktion fun2();

2. Was ist eine abstrakte Klasse?

Solange eine Methode in einer Klasse eine abstrakte Methode ist, wird die Klasse als abstrakte Klasse definiert und die abstrakte Klasse muss dort auch mit dem Schlüsselwort „abstract“ geändert werden Es können Methoden sein, die nicht abstrakt sind, und Mitgliedsattribute. Solange jedoch eine Methode abstrakt ist, muss die Klasse als abstrakte Klasse deklariert und mit „abstrakt“ versehen werden.

Zum Beispiel:

abstrakte Klassendemo{

var $test;

abstrakte Funktion fun1();

abstrakte Funktion fun2 ( );

}

3. Welche Rolle spielen abstrakte Klassen?

Im obigen Beispiel wird eine abstrakte Klasse „demo“ definiert und mit „abstract“ geändert. In dieser Klasse werden ein Mitgliedsattribut „$test“ und zwei abstrakte Methoden „fun1“ und „fun2“ definiert . „Es gibt auch 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 Instanzen erzeugen können Verwendung der Deklaration abstrakter Klassen für Objekte? Wir verwenden abstrakte Methoden als Vorlagen für die Überladung von Unterklassen. Das Definieren einer abstrakten Klasse entspricht der Definition einer Spezifikation. Nachdem die Unterklasse die abstrakte Klasse abgelöst hat, werden die darin enthaltenen abstrakten Methoden entsprechend den Anforderungen implementiert Unterklassen. Die Unterklasse muss alle abstrakten Methoden in der übergeordneten Klasse implementieren. Wenn es sonst noch abstrakte Methoden in der Unterklasse gibt, ist die Unterklasse immer noch eine abstrakte Klasse und kann nicht instanziiert werden. 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 beispielsweise die abstrakte Methode in der Klasse implementieren :

abstract class mode{

var $test;

abstract function fun1();

abstract function fun2();

function fun2 (){

....

}

}

$mode = new mode(); //Zusammenfassung Eine Klasse kann nur Instanzobjekte generieren, daher ist es falsch, dies zu tun. Das instanziierte Objekt wird an die Unterklasse übergeben

Klassentest erweitert den Modus{

Funktion fun1(){

....

}

function fun2(){

....

}

}

$test = new test(); //Unterklassen können Objekte instanziieren, da alle abstrakten Methoden der übergeordneten Klasse implementiert sind

Weitere abstrakte Methoden und Abstraktionen in PHP Für klassenbezogene Artikel beachten Sie bitte die chinesische PHP-Website!

Stellungnahme:
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