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

來源:互聯網
上載者:User
今天在這裡和大家談談關於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();

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.