PHP物件導向基礎

qiyuandu發表於2016-11-21

1、__constract()建構函式知識點

a、例項化物件的時候,如果子類沒有建構函式,就呼叫父類的建構函式。如果子類有建構函式,這首先呼叫自己。

b、呼叫父類的建構函式 parent::__constract();


2、PHP不支援多重繼承,因為多重繼承容易產生二義性。但如果讓c->b->a,就可以實現多重繼承的功能。

3、多型:即多種形態。可以分為方法的重寫和方法的過載,但PHP不支援方法的過載,只支援方法的重寫。

a、子類必須要父類具有相同的方法名;

b、子類中重寫的方法可以和父類的方法引數個數不一致(不遵循嚴格標準);

c、子類中覆蓋的方法不能比父類被覆蓋的方法許可權更加嚴格;

d、私有屬性可以被繼承,但不能被重寫。


4、方法修飾符(一)static(靜態的)

a、static修飾的屬性為靜態屬性,static修飾的方法為靜態方法;

b、靜態屬性在載入類的時候就分層記憶體空間,不需要例項化就可以直接訪問靜態成員;

c、靜態屬性在記憶體中只有一份,為所有的例項共享;

d、靜態方法只能訪問靜態成員,因為靜態方法建立的時候,可能還沒有類的例項化;

e、訪問靜態成員語法,類名::靜態屬性,類名::靜態方法;

f、靜態成員被繼承


5、方法修飾符(二)-final(最終的)

a、final 修飾的類不能被繼承;

b、final修飾的方法不能被重寫(覆蓋)


6、方法修飾符(三)-abstract(抽象的)

a、abstract修飾的類為抽象類,abstract修飾的方法稱為抽象方法;

b、如果一個方法只有方法的宣告,沒有方法的實現,這個方法就稱為抽象方法;

c、如果一個類中有一個方法是抽象方法,這個類就是抽象類;

d、抽象類不允許例項化,必須在子類中重新實現;

e、抽象類的作用:抽象類是用來定義規範的,可以使得方法的命名得到統一;

f、抽象類的特點是不能被例項化,如果一個普通類不想被例項化,可以在類的前面用abstract來修飾,阻止例項化。


7、介面(interface)

a、如果一個抽象類中所有的方法就是抽象方法,這個類可以宣告成介面;

b、介面是一個特殊的抽象類;

c、介面中的訪問修飾符可以省略 ,預設是public;

d、類不能繼承介面,只能實現介面(implement);

e、abstract,final不能修飾介面中的抽象方法;

f、類不能多重繼承,但是介面可以實現多重繼承;

g、在介面的多重實現中,如果有多個同名的抽象方法,只需要實現一次即可。

h、繼承類同時實現介面,先要繼承類,再實現介面。


8、類常量

1、語法:const 常量名

2、訪問常量:     類名::常量名  介面名::常量名;

相關文章