面向?qū)ο髮W(xué)習(xí)筆記

屬性:

類中定義的變量

方法:

類中的function

在面向過程的程序設(shè)計中function叫做函數(shù),在面向?qū)ο笾衒unction則被稱之為方法。

&this

表示類使用本身的屬性或者方法,出現(xiàn)$this表示類自己

父類的屬性,在子類中可用$this訪問

訪問控制:

  • public在類本身、子類、其他類中都可以訪問
  • protect在類本身、子類中可以訪問
  • private只能在類本身使用

static靜態(tài)成員:

調(diào)用 類名::方法名
內(nèi)部調(diào)用靜態(tài)方法和屬性時,使用self或static代替$this self::$speed;//訪問自身的靜態(tài)成員
parent::$speed;//訪問父類的靜態(tài)成員

注意:訪問靜態(tài)屬性時,需要加上$

構(gòu)造函數(shù)__construct()

創(chuàng)建對象時使用,初始化對象
調(diào)用父類的構(gòu)造函數(shù):parent::__construct()

析構(gòu)函數(shù)__destruct()

某個對象的所有引用被刪除,或者對象被顯式的銷毀時執(zhí)行

重寫overwrite:

在子類中編寫和父類方法名完全一致的方法

final:

添加final關(guān)鍵字能夠讓這個方法不能在子類中重寫
class之前添加final關(guān)鍵字,此類不被繼承
方法定義前添加final關(guān)鍵字,方法不被重寫(修改)
用parent關(guān)鍵字可以訪問父類中被子類重寫的方法

接口

interface用于定義接口。

  • interface ICanEat{}接口里面的方法只定義,不需要有方法的實現(xiàn)。具體的實現(xiàn)必須在實現(xiàn)類中定義。
  • implements用于表示類實現(xiàn)某個接口。class Human implements ICanEat{}
  • 實現(xiàn)了某個接口之后,必須提供接口中定義的方法的具體實現(xiàn)。
  • 給出一個接口,自己定義類來實現(xiàn)接口,且類中的方法自己定義來實現(xiàn)
  • 不能實例化接口
  • 接口不能創(chuàng)建對象
  • 可用instanceof來判斷某個對象是否實現(xiàn)了某個接口
  • 可以用extends讓接口繼承接口。當(dāng)類實現(xiàn)子接口時,夫接口定義的方法也需要在這個類里面具體實現(xiàn)。

類的方法必須有實現(xiàn),接口的方法必須為空。

多態(tài)

公開課視頻:多態(tài)

相同的一行代碼,對于傳入不同的接口的實現(xiàn)的對象的時候,表現(xiàn)是不同的,這即是多態(tài)。

抽象類

abstract

<?php
    abstract class ICanEat{
    abstract public function eat($food);

    public function breath(){
        echo "Breath use the air. \n";
    }
}
?>

abstract在抽象方法前面添加abstract關(guān)鍵名字可以標明這個方法是抽象方法不需要具體的實現(xiàn)

抽象類中可以包含普通的方法

繼承抽象類的子類需要實現(xiàn)抽象類中定義的抽象方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容