【代碼學習】PHP面向對象之抽象類與接口
阿新 • • 發佈:2017-05-10
部分 truct 中國人 protect nds 16px 使用 function col
一、什麽是抽象方法?
一個方法如果沒有方法體(不使用"{}",直接使用分號結束的方法,才是沒有方法體的方法),則這個方法就是抽象方法
1、聲明一個方法,不使用{},而直接分號結束
2、如果是抽象方法,必須使用abstract(抽象關鍵字來修飾)
二、什麽是抽象類
1、如果一個類中有一個方法是抽象的方法,則這個類就是抽象類
2、如果聲明一個抽象類,則這個類必須使用abstract關鍵字修飾
<?php //聲明一個抽象類,要使用abstract關鍵字識別 abstract class Person{ protected $name; protected$country; //在抽象類中聲明一個沒有方法體的抽象方法 abstract function say(); //在抽象類中可以聲明正常的費抽象的方法 function run(){ echo ‘我正在走路‘; //有方法體,輸出一條語句 } } ?>
註意:
1、只要使用abstract修飾的類,就是抽象類
2、抽象類是一種特殊的類,在抽象類中可以有抽象方法
3、除了抽象類可以有抽象方法,意外,和正常的類完全一樣
4、抽象類不能實例化對象
三、抽象方法的作用
1、抽象方法的作用就是規定了,子類必須有這個方法的實現,功能交給二子類
2、只寫出來結構而沒有實現,實現交給具體的子類去實現
<?php //聲明一個抽象類,要使用abstract關鍵字識別 abstract class Person{ protected $name; protected $country; function __construct($name=‘‘,$country=‘China‘){ $this ->name = $name; $this ->country = $country; } //在抽象類中聲明一個沒有方法體的抽象方法abstract function say(); //在抽象類中可以聲明正常的費抽象的方法 abstract function run(){ echo ‘我正在走路‘; //有方法體,輸出一條語句 } class student extends Person{ function say() { echo ‘我是中國人‘; } function run() { echo ‘我正在跑步‘; } } } ?>
註意:
1、抽象類不能實例化對象(不能創建對象)
2、如果塊錢按鍵抽象類,就必須寫這個類的子類,將抽象類中的抽象方法覆蓋(加上方法體)
3、子類不許全部實現(覆蓋重寫)抽象方法,這個子類才能創建對象,如果只實現部分,那麽還有抽象方法,則類必須是抽象類
四、抽象類的作用
就是要求子類的結構,所以抽象類就是一個規範
【代碼學習】PHP面向對象之抽象類與接口