屬性:
類中定義的變量
方法:
類中的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)
相同的一行代碼,對于傳入不同的接口的實現(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)抽象類中定義的抽象方法