1. 程式人生 > >【代碼學習】PHP面向對象之抽象類與接口

【代碼學習】PHP面向對象之抽象類與接口

部分 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面向對象之抽象類與接口