抽象類別(abstract class):
1)包含至少一個抽象方法(abstract function)的類別。換言之,任何類別只有一個或以上的抽象方法,這個類別就是抽象類別。
2)抽象類別中可以有具體方法,可以有成員變數。
3)抽象類別不能實例化。都叫抽象的,還咋實例化。 2333.
4)用法:
abstract class Father{
protected(或public修飾 不能是private的 不然子類別也取得不到) abstract function func1();
}
實作繼承到的抽象方法時
class Son extends Father{//和普通類別一樣,一個子類別也只能繼承一個抽象類別
public (去掉abstract關鍵字) function func1{
echo '必須實現所有的抽象方法';
}
}
介面(interface):
1)介面中全部是抽象方法。 (因為要用來給子類別實作。所以都要是public的。)
2)介面中不能有具體方法,且只能有成員常數。
3)一個類別可以實作多個介面。
3)用法: implements關鍵字後實作多個介面用逗號隔開。
class Son implements InterfaceA,InterfaceB,InterfaceC {
//1.實作這三個介面的所有抽象方法,2.要與抽象方法的參數完全一致 3.介面的常數不能被覆蓋。
}