##簡介
在物件導向程式設計中,抽象類別是可以實例化的類,也就是不可能宣告此類別的物件。 PHP從5.0版本開始支援抽象類別的概念用abstract關鍵字定義的類別成為抽象類別。此外,任何包含至少一個抽象方法的類別也被認為是抽象的。語法<?php class testclass{ // } ?>
$a=new testclass(); PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass#抽象方法抽象方法僅聲明其簽名,即其可見性、參數和帶有類型提示的返回類型,並且不具有任何功能。繼承此類抽象類別的類別必須重寫(提供定義)所有抽象方法。子類別中的相應方法必須具有與父類別中相同的簽名。如果子類別不滿足此條件,PHP 解析器將拋出異常。擴展抽象類別的類別現在可以被實例化,因此它被稱為具體類別在下面的範例中,父類別有兩個抽象方法,只有其中一個在子類別中重新定義。這會導致錯誤如下 -
##Example
<?php abstract class testclass{ abstract function test1(); abstract function hello(); } class myclass extends testclass{ function test1(){ echo "Overrides parent test method"; } } $a=new myclass(); ?>
Output
PHP Fatal error: Class myclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testclass::hello)
Abstract method帶參數
在下面的範例中,父類別中的抽象方法有兩個參數。子類別也定義了具有兩個參數的相同函數
範例
<?php abstract class testclass{ abstract function hello($name, $age); } class myclass extends testclass{ function hello($name, $age){ echo "My name is $name and my age is $age"; } } $a=new myclass(); $a->hello("Ravi",20); ?>
輸出
My name is Ravi and my age is 20
以上是PHP類別抽象化的詳細內容。更多資訊請關注PHP中文網其他相關文章!