與重寫類似,方法的重寫是子類覆蓋父類的物件方法
隱藏,就是子類覆蓋父類的類方法
步驟 1 :父類
父類有乙個類方法 :battlewin
package charactor;
public class hero
}
步驟 2 :子類隱藏父類的類方法
package charactor;
public class adhero extends hero implements ad
//隱藏父類的battlewin方法
public static void battlewin()
public static void main(string args)
}
練習: 隱藏
hero h =new adhero();
h.battlewin(); //battlewin是乙個類方法
h是父類型別的引用
但是指向乙個子類物件
h.battlewin(); 會呼叫父類的方法?還是子類的方法?
答案:
雖然h指向的是乙個子類物件,但是依然呼叫的是父類的類方法。
甚至在h指向乙個空物件null的時候,也能夠成功呼叫battlewin().
所以和h指向哪個物件無關,只和h的型別有關係。
當然,也不建議通過物件去呼叫類方法,而應該直接通過類去呼叫類方法,從而規避理解上的歧義。
Java自學 介面與繼承 重寫
子類可以繼承父類的物件方法 在繼承後,重複提供該方法,就叫做方法的重寫 又叫覆蓋 override 步驟 1 父類item 父類item有乙個方法,叫做effect package property public class item public void effect 步驟 2 子類lifepo...
Java自學 介面與繼承 內部類
內部類分為四種 非靜態內部類 靜態內部類 匿名類本地類 步驟 1 非靜態內部類 非靜態內部類 battlescore 戰鬥成績 非靜態內部類可以直接在乙個類裡面定義 比如 戰鬥成績只有在乙個英雄物件存在的時候才有意義 所以例項化battlescore 的時候,必須建立在乙個存在的英雄的基礎上 語法 ...
Java自學 介面與繼承 預設方法
步驟 1 什麼是預設方法 預設方法是jdk8新特性,指的是介面也可以提供具體方法了,而不像以前,只能提供抽象方法 mortal 這個介面,增加了乙個預設方法revive,這個方法有實現體,並且被宣告為了default package charactor public inte ce mortal 步...