今天在這裡和大家談談關於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();
注意:抽象方法一定不能帶方法體!