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