php物件導向 -- 抽象類
抽象類abstract:
有一種類,只能被繼承,不能例項化物件。原因就是這個類的定義不完整。
因為php支援定義一種,只有方法的宣告部分,而沒有方法的實現部分的不完整方法。
如果某個類,包含了這種不完整的方法,就不是不完整類,也就不能例項化物件。
不完整的類,稱之抽象類
所包含的不完整的方法,稱之抽象方法。
定義:包含抽象方法的類,就是抽象類。
語法:定義抽象方法,利用abstract的關鍵字,告知php那個方法為抽象方法
如果乙個類包含乙個抽象方法,也就是抽象類,因此也需要使用abstract關鍵字宣告
例子:abstract class goods
public $goods_name;
public $shop_price;
public function __construct($name,$price)
$this->goods_name= $name;
$this->shop_price= $price;
//抽象方法
abstract public function sayname();
class goodsbook extends goods
public $pages;
public function __construct($name,$price,$pages)
parent::__construct($name,$price);
$this->pages= $pages;
// 繼承抽象類的子類要實現抽象類中的 抽象方法
public function sayname()
echo$this->goods_name;
抽象類沒有例項化物件的能力,只有被繼承的能力。
如果繼承某個抽象類的類是非抽象類的話,就一定要將不完整的抽象方法實現,否則該類也應該是乙個抽象類。
注:子類中實現抽象類的抽象方法時,方法名、引數要一致,訪問許可權要弱於抽象類的訪問許可權。
例子:abstruct class goods
abstruct protected function sayname();
class goodsbook extends goods
public function sayname()
抽象類功能總結:
在可以為子類提供公共操作的同時,限制子類所用有得方法的結構。
犧牲了例項化物件的功能。
PHP物件導向 抽象類
抽象類的特點 1 php5支援抽象類和抽象方法 2 定義的抽象類無法被例項化 3 任何乙個類裡面宣告了抽象方法,那麼這個類必須宣告為抽象類,乙個抽象類可以沒有抽象方法 4 被定義的抽象方法只能宣告其呼叫方式 引數 不能定義其具體的功能實現 5 繼承抽象類的子類必須實現父類 抽象類 所有的抽象方法,並...
PHP 物件導向 抽象類繼承抽象類
抽象類繼承另外乙個抽象類時,不用重寫其中的抽象方法。抽象類中,不能重寫抽象父類的抽象方法。這樣的用法,可以理解為對抽象類的擴充套件。下面的例子,演示了乙個抽象類繼承自另外乙個抽象類時,不需要重寫其中的抽象方法。abstract class user abstract class vipuser ex...
PHP 物件導向 抽象類繼承抽象類
抽象類繼承另外乙個抽象類時,不用重寫其中的抽象方法。抽象類中,不能重寫抽象父類的抽象方法。這樣的用法,可以理解為對抽象類的擴充套件。下面的例子,演示了乙個抽象類繼承自另外乙個抽象類時,不需要重寫其中的抽象方法。abstract class user abstract class vipuser ex...