Heim  >  Artikel  >  Backend-Entwicklung  >  Wie versteht man abstrakte Klassen und abstrakte Methoden in PHP? (mit Code)

Wie versteht man abstrakte Klassen und abstrakte Methoden in PHP? (mit Code)

不言
不言Original
2018-07-21 17:12:082547Durchsuche

Heute werde ich über abstrakte Klassen und abstrakte Methoden in objektorientiertem PHP sprechen. Einfach ausgedrückt ist eine abstrakte Klasse in PHP eine Klasse, die nicht instanziiert werden kann und nur als übergeordnete Klasse anderer Klassen verwendet werden kann Abstrakte Methoden können keine Methodenkörper mitbringen. Schauen wir uns konkrete Beispiele an.

Objektorientierte abstrakte Methoden und abstrakte Klassen:

Alle Unterklassen müssen die Methoden der übergeordneten Klasse erben, bei der Vererbung besteht jedoch Unsicherheit, und die Methoden der übergeordneten Klasse müssen dies tun Umschreiben, zu diesem Zeitpunkt definieren wir die überschriebene Methode als abstrakte Methode. Abstrakte Methoden müssen keinen Methodenkörper haben. Diese Klasse ist auch abstrakt.

Eine abstrakte Klasse ist eine Klasse, die nicht instanziiert werden kann und nur als übergeordnete Klasse anderer Klassen verwendet werden kann!

Wenn eine Methode in einer Klasse abstrakt ist, dann ist die Klasse eine abstrakte Klasse.

Wenn eine Klasse eine abstrakte Klasse ist, muss die Klasse mit abstrakt geändert werden.

Abstrakte Klasse ist eine besondere Art von Klasse, Schnittstelle ist eine besondere Art von abstrakter Klasse, Polymorphismus erfordert die Verwendung einer abstrakten Klasse oder Schnittstelle!

Der Testcode lautet wie folgt:

abstract class A{
	public $name = 'zym';
	abstract function show();
}
//$a = new A();//会报错
class B extends A{
	public function show(){
		echo '继承父类的抽象方法并进行重写';
	}
}
$b = new B();
$b->show();

Abstrakte Klassen ähneln gewöhnlichen Klassen, einschließlich Mitgliedsvariablen und Mitgliedsmethoden. Der Unterschied zwischen den beiden besteht darin, dass eine abstrakte Klasse mindestens eine enthalten muss Da eine abstrakte Methode keinen Methodenkörper hat, kann die Implementierung ihrer Funktionen nur in Unterklassen erfolgen.

Der Code lautet wie folgt:

//定义一个名为【交通工具】的类
abstract class Vehicle{
	private $name;//名称
	private $price;//价格
	private $brand;//品牌
	abstract function run();
}
class Truck extends Vehicle{
	function run(){
		echo '卡车在路上跑';
	}
}
class Plane extends Vehicle{
	public function run(){
		echo '飞机在天上飞';
	}
}
$plane = new Plane;
$plane->run();

Hinweis: Abstrakte Methoden dürfen keine Methodenkörper haben!

Verwandte Empfehlungen:

Analyse von Konzepten und Verwendung abstrakter Klassen und abstrakter Methoden in PHP, PHP-Abstraktion

detailliert Erklärung in PHP Abstrakte Methoden und abstrakte Klassen

Das obige ist der detaillierte Inhalt vonWie versteht man abstrakte Klassen und abstrakte Methoden in PHP? (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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