classa}
class
bextendsa}
public
class
test
}
結果:
9
class
astatic
voidf(
);}class
bextends
astatic
voidf(
)}public
class
test
}
使用a a = new a()
結果:
a a=
newa()
父類的構造
父類的靜態方法
使用父類的靜態方法a.f()
,結果呼叫了父類的靜態方法結果:父類的靜態方法
使用b b=new b()
結果:
b b=
newb()
父類的構造
父類的靜態方法
子類的構造
子類的靜態方法
使用子類的靜態方法時b.f()
,結果呼叫了子類的靜態方法結果:子類的靜態方法
,父類的靜態方法不被呼叫
使用a a=new b()
結果:
b b=
newb()
父類的構造
父類的靜態方法
子類的構造
子類的靜態方法
父類的靜態方法
父類的靜態方法
用上轉型物件呼叫靜態方法時a.f()
,實際呼叫了父類的靜態方法結果:父類的靜態方法
針對疑問3,得到結論:存在上轉型物件時,使用該物件呼叫靜態方法,實際呼叫的是父類的方法,即便是將該物件進行強制轉換為子類物件,實際呼叫還是父類的方法(詳細請看**中的第三種)。
由此得出:在存在上轉型物件時,子類定義的與父類同名的靜態方法(不是重寫)將會失效
由於水平有限,部落格難免會有不足,懇請大佬們不吝賜教!
最後:祝你我變得更強!
php 物件 呼叫靜態方法
1.bnf正規化 token t paamayim nekudotayim t paamayim nekudotayim 類名 靜態方法 function call class name t paamayim nekudotayim variable name function call param...
物件呼叫靜態方法 C 中靜態成員 靜態方法 靜態類
平時在用c 做開發的朋友都知道,不論是靜態成員還是靜態方法還是靜態類都是用static關鍵字來修飾。也就是說只要看到了static,那麼它後面的東西就是靜態!在c 中,靜態成員或者靜態方法是屬於類的,不是屬於物件。假如我們有乙個類myclass,需要例項化這個 類,就應該這麼做 myclass my...
php 類物件呼叫靜態方法
以前一直以為 靜態方法的呼叫 類名 靜態方法 非靜態方法的呼叫 類物件 非靜態方法 最近研究乙個類,發現乙個比較奇怪的問題,用 類物件 靜態方法 這種方式居然成功的呼叫了靜態方法。很疑惑,還以為是該類中定義了 call魔術方法,在通過物件呼叫不到該靜態方法的時候,做了處理,通過類名呼叫了該方法。但是...