抽象類(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.接口的常量不能被覆蓋。
}