1、實現多個具備相同方法的接口spa
這種狀況仍是比較少會遇到的,但事實是存在這樣的問題,因此寫下解決的方法:設計
使用內部類:code
interface InterA { void f(); } interface InterB { void f(); } public class C implements InterA { public void f() { // 實現接口InterA方法 System.out.println("A.f()"); } private class ImplB implements InterB { public void f() { // 實現接口InterA方法 System.out.println("B.f()"); } } public InterB getB() { return new ImplB(); } // 使用 public static void main(String[] args) { C c = new C(); InterA a = c; //C實現了A接口,能夠直接向上轉型 a.f(); InterB b = c.getB(); b.f(); } }
這樣就區分開使用不一樣接口的方法,若是是直接實現兩個接口,而後實現方法,那麼將是同時實現兩個接口中的方法。blog
2、父類與實現接口有相同方法繼承
當父類中有與實現接口相同的方法時,好比(使用HTTPServlet實現的Filter就具備相同的destroy方法)接口
若是不顯示實現方法會發現沒有語法的錯誤,那麼就是說明繼承下來的方法實現了接口中的同名方法。get
若是須要區分開,那麼須要重寫放以及增長一個方法,在增長的方法中使用super關鍵字調用父類的方法,而重寫方法不調用父類方法,那麼就算是區分開了。。class
注:若是狀況在複雜一點(如更多接口,還有一個父類)交叉多個相同方法。。。。。。。你們應該很難纔會遇到這樣的狀況。。。並且接口的設計方法都是有意義的,不會有那麼多的同名。。語法
2019年6月27日 08:15:39方法