今天在這裡和大家談談關於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中文網其他相關文章!