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接口

查了一些资料,明白了,假想一下,如果你改动了这个接口里面的方法名,那么你是不是得修改实现这个的所有方法,那么你就不得不去寻找哪个地方实现这个方法了,这个时候如果子类只是继承父类而不写实现父类接口的话,很有可能就会忘记修改子类的方法,这样子类中的方法就是一个新的方法了,问题也就出现了。详细解释看链接

发布了46 篇原创文章 · 获赞 75 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/UNIONDONG/article/details/87071347