Java自學 介面與繼承 隱藏

2021-09-16 19:22:47 字數 901 閱讀 5495

與重寫類似,方法的重寫是子類覆蓋父類的物件方法

隱藏,就是子類覆蓋父類的類方法

步驟 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 步...