扫码关注官方订阅号
小伙看你根骨奇佳,潜力无限,来学PHP伐。
A = 生命体B = 狗C = 京巴
狗 实现了 生命体,京巴 是 狗
狗
生命体
京巴
京巴是狗,狗是生命体,京巴也是生命体
A a = new C() = 生命体a是只京巴
A a = new C()
也没啥不对啊
假设接口 D = 故事
D d = new C() 就不对了,故事d是只京巴,明显逻辑不顺畅嘛
D d = new C()
list l=new ArrayList();不是经常用到么?
当然可以啦,C的所有行为中已经包含了A接口中的行为,就好比说一种行为叫跑,一个抽象类动物实现了跑的行为,一个具体类猴子继承了抽象类动物,那么,你觉得猴子是否具备跑的行为呢?
是可以的,其他不说。
接口定义的是一组规范,可以实现类似于一种多继承,不关心具体实现,而是抽象出通用接口。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,实现代码的复用。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();
java不会 但是接口不能声明变量
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
A = 生命体
B = 狗
C = 京巴
狗实现了生命体,京巴是狗京巴是狗,狗是生命体,京巴也是生命体
A a = new C()= 生命体a是只京巴也没啥不对啊
假设接口 D = 故事
D d = new C()就不对了,故事d是只京巴,明显逻辑不顺畅嘛list l=new ArrayList();
不是经常用到么?
当然可以啦,C的所有行为中已经包含了A接口中的行为,就好比说一种行为叫跑,一个抽象类动物实现了跑的行为,一个具体类猴子继承了抽象类动物,那么,你觉得猴子是否具备跑的行为呢?
是可以的,其他不说。
接口定义的是一组规范,可以实现类似于一种多继承,不关心具体实现,而是抽象出通用接口。
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,实现代码的复用。
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();
java不会
但是接口不能声明变量