Java自學 介面與繼承 預設方法

2021-09-17 19:46:20 字數 1026 閱讀 2563

步驟 1 :什麼是預設方法

預設方法是jdk8新特性,指的是介面也可以提供具體方法了,而不像以前,只能提供抽象方法

mortal 這個介面,增加了乙個預設方法revive,這個方法有實現體,並且被宣告為了default

package charactor;

public inte***ce mortal

}

步驟 2 :為什麼會有預設方法

假設沒有預設方法這種機制,那麼如果要為mortal增加乙個新的方法revive,那麼所有實現了mortal介面的類,都需要做改動。

但是引入了預設方法後,原來的類,不需要做任何改動,並且還能得到這個預設方法

通過這種手段,就能夠很好的擴充套件新的類,並且做到不影響原來的類

練習: 預設方法

為ad介面增加乙個預設方法 attack()

為ap介面也增加乙個預設方法 attack()

問: adaphero同時實現了ad,ap介面,那麼 adaphero 物件呼叫attack()的時候,是呼叫哪個介面的attack()?

答案

package charactor;

public class adaphero extends hero implements ad,ap,mortal

@override

public void physicattack()

@override

public void die()

//作為同時繼承了ad和ap中的 預設方法attack,就必須在實現類中重寫該方法

//從而免去到底呼叫哪個介面的attack方法這個問題

@override

public void attack()

}

Java自學 介面與繼承 隱藏

與重寫類似,方法的重寫是子類覆蓋父類的物件方法 隱藏,就是子類覆蓋父類的類方法 步驟 1 父類 父類有乙個類方法 battlewin package charactor public class hero 步驟 2 子類隱藏父類的類方法 package charactor public class ...

Java自學 介面與繼承 重寫

子類可以繼承父類的物件方法 在繼承後,重複提供該方法,就叫做方法的重寫 又叫覆蓋 override 步驟 1 父類item 父類item有乙個方法,叫做effect package property public class item public void effect 步驟 2 子類lifepo...

Java自學 介面與繼承 內部類

內部類分為四種 非靜態內部類 靜態內部類 匿名類本地類 步驟 1 非靜態內部類 非靜態內部類 battlescore 戰鬥成績 非靜態內部類可以直接在乙個類裡面定義 比如 戰鬥成績只有在乙個英雄物件存在的時候才有意義 所以例項化battlescore 的時候,必須建立在乙個存在的英雄的基礎上 語法 ...