Php物件導向 抽象類

2021-06-23 06:54:23 字數 1257 閱讀 3007

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...