arraylist底層數(shù)據(jù)結(jié)構(gòu)是 Java中為什么靜態(tài)方法不能被重寫?
Java中為什么靜態(tài)方法不能被重寫?靜態(tài)方法可以繼承,但不能重寫。如果父類中定義的靜態(tài)方法在子類中重新定義,則父類中定義的靜態(tài)方法將被隱藏??梢允褂谜Z(yǔ)法:parent class name。靜態(tài)方法調(diào)
Java中為什么靜態(tài)方法不能被重寫?
靜態(tài)方法可以繼承,但不能重寫。如果父類中定義的靜態(tài)方法在子類中重新定義,則父類中定義的靜態(tài)方法將被隱藏??梢允褂谜Z(yǔ)法:parent class name。靜態(tài)方法調(diào)用隱藏的靜態(tài)方法。如果父類包含一個(gè)靜態(tài)方法,而子類也包含一個(gè)具有相同返回類型、方法名稱和參數(shù)列表的靜態(tài)方法,那么子類實(shí)際上會(huì)在父類中隱藏具有相同名稱的方法,而不是重寫它。換句話說(shuō),父類和子類中實(shí)際上有兩個(gè)不相關(guān)的方法,它們的行為不是多態(tài)的。因此,當(dāng)使用指向子類對(duì)象的父類引用變量調(diào)用具有相同父子名稱的靜態(tài)方法時(shí),將只調(diào)用父類的靜態(tài)方法。
java聲明為static的方法不能被重載?
靜態(tài)方法屬于此類,而不是對(duì)象。沒有繼承或不繼承這回事。覆蓋和重寫也是對(duì)象的方法,而不是靜態(tài)方法。你要問的第二個(gè)問題是“隱藏”。方法被聲明為靜態(tài)的,靜態(tài)方法不能被重寫;它們只能被隱藏。為了避免這種混亂,永遠(yuǎn)不要隱藏靜態(tài)方法。即使在子類的超類中重用靜態(tài)方法的名稱,也不會(huì)給您帶來(lái)任何新的東西,但會(huì)丟失很多東西?!保↗ava拼圖)