首页 > java 继承关系

java 继承关系

有下面三种类(或接口)
A:接口
B:抽象类,实现A
C:B的子类(非抽象)
可以
A a = new C() 吗?


A = 生命体
B = 狗
C = 京巴

实现了 生命体京巴

京巴是狗,狗是生命体,京巴也是生命体

A a = new C() = 生命体a是只京巴

也没啥不对啊

假设接口 D = 故事

D d = new C() 就不对了,故事d是只京巴,明显逻辑不顺畅嘛


当然可以啦,C的所有行为中已经包含了A接口中的行为,就好比说一种行为叫跑,一个抽象类动物实现了跑的行为,一个具体类猴子继承了抽象类动物,那么,你觉得猴子是否具备跑的行为呢?


java不会
但是接口不能声明变量


list l=new ArrayList();
不是经常用到么?


接口定义的是一组规范,可以实现类似于一种多继承,不关心具体实现,而是抽象出通用接口。
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,实现代码的复用。
A a = new C()当然可以。
class C extends B implements A {}, C就是A的一个实例对象。类似可以查看List list= new ArrayList();


是可以的,其他不说。


B完全实现了A的方法
C继承了B,也就具备了B中所有实现的接口A的方法
所以A的所有声明方法也都可以通过C来实现
A a=new C();

【热门文章】
【热门文章】