這篇文章主要介紹了關於PHP的類別修飾符與存取修飾符,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
1.abstract修飾的類別為抽象類,如果一個類別中含有抽象方法那麼這個類別就是抽象類別(當然一個類別中沒有抽象方法,我們也可以定義這個類別為抽象類別),那麼什麼是抽象方法呢,抽象方法就是沒有方法體的方法(沒有大括號和裡面的內容),抽象方法前面也加上abstract修飾。抽象類別本身不能被實例化,只有一個類別繼承了它,並且覆寫了它所有的抽象方法,這樣我們可以實例化它的子類別
abstract class My{ abstract function say(); } // abstract class My{ function say(){ echo 'hello'; } }
2.interface修飾的類別為接口,接口與抽象類別有點類似,不過他們的區別是,接口所有的方法都是抽象方法,接口的抽象方法前面沒有abstract修飾,成員屬性必須為常數。介面引用區別於類別繼承關鍵字 extends ,繼承只能只是單一性,而介面可以使用關鍵字 implements 多個引用並用逗號分開。
interface demo { const NAME = "常量对象属性"; function fun1(); function fun2(); //抽象方法。 } class MyPc extends Root implements demo , demo2 , demo3 { ... }
3.final修飾的類別為終結類,它不能被繼承。
1.public 公共的方法和屬性,能在所有的類別中使用
2.static 靜態的方法和變數
如果存取控制權限允許,可不必建立該類別物件而直接使用類名加兩個冒號「::」調用,static的屬性,在記憶體中只有一份,為所有的實例共用, 靜態方法不能調用非靜態屬性。不能使用self::呼叫非靜態屬性。
function test(){ static $a=1; $a*=2; echo $a."\n"; } test() test() test() //打印结果 //2 //4 //8
靜態變數的初始化賦值只有一次,後面的test方法不會再初始化。
3.private 修飾的方法和變數是私有的,只能在本類中呼叫(在其他的類別中實例化本類,是無法呼叫private修飾的方法和變數)
4.proteced 受保護的方法和變量,只能在本類別和本類別的子類別中使用
5.final 修飾的方法不能被覆寫。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
以上是PHP的類別修飾符與存取修飾符的詳細內容。更多資訊請關注PHP中文網其他相關文章!