JAVA常用類的關係圖

這幾天看到 所有的類都是Object類的子類,然後就想着瞭解一下常用類的繼承關係,查了一些資料,總結了一下關係圖,如下(深藍色的是類,橙色的是接口
Java常用類的關係圖
在整理這些知識點的時候,發現有一些概念不是特別明白,在這裏也分享一下:

  • 一個接口可以繼承多個接口,而一個類只能繼承一個類
interface interface1{
public void method1();
}

interface interface2{
public void method2();
}

interface interface3 extends interface1,interface2{
public void method3();
}
  • 子類接口繼承父類接口,實現子類接口的類必須要實現子類,父類接口中的所有的方法
public class Interface_Test implements interface3{

    public void method1(){
        System.out.println("method1");
    }

    public void method2(){
        System.out.println("method2");
    }

    public void method3(){
        System.out.println("method3");
    }
}
  • 如果父類實現了某一接口,子類繼承父類,那麼子類也就有該接口的方法。如果子類也實現與父類同一接口,子類可以不用重寫接口方法,因爲父類已經具備了。如果寫的話,可以該方法看作是重載了父類的方法。
class Interface_Test2 extends Interface_Test implements interface1,interface2,interface3{ //這裏繼承類裏面有實現接口的方法的話,即使後面再實現接口,都可以不用寫該方法,因爲繼承的類已經實現了,如果寫了的話,就可以看作是重載了
    public void method1(){ 		//重載方法1,未重寫方法2,3
    System.out.println("Interface_Test2--method1");
    }
    public static void main(String[] args){
    Interface_Test2 interface_test2 = new Interface_Test2();
    interface_test2.method1();
    interface_test2.method2();
    interface_test2.method3();
    }
}

所以這時候就會出現一個疑問了,有沒有大佬解答一下呢?
爲什麼Java中父類中已經實現了接口,子類還要再重新實現一次呢?何不直接重載實現呢?
ArrayList實現List接口AbstractList實現List接口

查了一些資料,明白了,假想一下,如果你改動了這個接口裏面的方法名,那麼你是不是得修改實現這個的所有方法,那麼你就不得不去尋找哪個地方實現這個方法了,這個時候如果子類只是繼承父類而不寫實現父類接口的話,很有可能就會忘記修改子類的方法,這樣子類中的方法就是一個新的方法了,問題也就出現了。詳細解釋看鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章