首頁  >  文章  >  後端開發  >  如何理解PHP中抽象類別和抽象方法? (附代碼)

如何理解PHP中抽象類別和抽象方法? (附代碼)

不言
不言原創
2018-07-21 17:12:082525瀏覽

今天在這裡和大家談談關於PHP物件導向中抽象類別和抽象方法的內容,簡單的來說,PHP中抽象類別是一種不能被實例化的類,只能作為其他類別的父類來使用,抽象方法則不能帶方法體,下面我們就來看看具體的範例。

物件導向的抽象方法和抽象類別:

所有子類別必須繼承父類別的方法,但是繼承的時候具有不確定性,必須對父類別的方法進行重寫,這時候我們就把這個被重寫的方法定義成抽象方法,抽象方法不需要有方法體。這個類別也就是抽象abstruct。

抽象類別是一種不能被實例化的類,只能作為其他類的父類來使用!

如果一個類別中,有一個方法是抽象的,則這個類別就是抽象類別。

如果一個類別是抽象類別,則這個類別必須使用abstract修飾。

抽象類別是一種特殊的類,介面是一種特殊的抽象類,多態就要使用到抽象類別或介面!

測試程式碼如下:

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();

抽象類別和普通類別相似,包含成員變數和成員方法,兩者的差異在於:抽象類別至少要包含一個抽象方法,抽象方法沒有方法體,其功能的實作只能在子類別中完成。

程式碼如下:

//定义一个名为【交通工具】的类
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();

注意:抽象方法一定不能帶方法體!

相關推薦:

PHP中抽象類別與抽象方法概念與用法分析,php抽象

詳解php中的抽象方法和抽象類別

以上是如何理解PHP中抽象類別和抽象方法? (附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn