java--類繼承和實現的介面中含有相同的方法
阿新 • • 發佈:2018-12-26
首先,說一下,當某一個類實現了兩個介面的時候,兩個介面中存在兩個相同的方法,在實現的類中只需實現一個方法的方法體。
當一個類繼承一個類,並且實現一個或者多個介面的時候,其中,父類和父介面中存在相同的方法。
如果子類中存在該方法的實現體或者說是覆蓋,則使用該類的物件去掉用該方法時候,其實掉用的是來自介面的實現方法,而不是來自父類方法的覆蓋。
如果子類中不存在該方法的實現[或者覆蓋],在使用該類物件掉用該方法的時候,就會使用從父類繼承的方法。同時將這個從父類繼承來的方法當作介面方法的實現,也就可以不再實現介面的方法體。
另外值得注意的就是,extends & implements 的書寫順序不能改變。
為了方便記憶可以認為:介面的優先級別要高於父類。
此處附上程式碼:
1 package Demo; 2 3 interface CanFight { 4 void fight(); 5 } 6 7 interface CanSwim { 8 void swim(); 9 } 10 11 interface CanFly { 12 void fly(); 13 } 14 15 class ActionCharactor { 16 public void fight() { 17 System.out.println("fight() from class ");