java中extends和implements有优先级吗?你是否了解它们同时存在时有什么影响?
在Java中,extends表示继承的意思,子类拥有父类非 private 的属性、方法。implements表示接口的实现,当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
当出现下面的情况,extends和implements的优先级哪个高?是BoyPeople继承了(GirlPeople implements People)还是(BoyPeople继承GrilPeople)后implements People?
public class BoyPeople extends GirlPeople implements People
对这个问题,我们通过一个例子来说明:
背景介绍,先介绍已有的类、接口、抽象类:
首先定义一个接口:
然后定义一个抽象类实现接口,由于GirlPeople是抽象类,所以可以不用实现所有的接口方法:
定义一个男孩实体类,继承抽象类,并实现接口:
定义一个女汉子的实体类,继承抽象类,并实现接口:
问题描述:
BoyPeople与TomBoy一样,都是继承了GirlPeople,并实现People。
这个时候,如果在People中增加一个方法。那么其他类该如何修改才能正确编译和运行?
原理分析:
1、People接口定义了三个方法
2、GirlPeople是抽象方法,实现了接口。因为它是抽象的,所以可实现接口中的部分方法。
3、TomBoy继承了GirlPeople并实现接口People。 People中的三个方法,TomBoy可以通过继承的方式从GirlPeople实现,也可以自己实现,但必须全部实现。
实验结果:
BoyPeople与TomBoy一样,都是继承了GirlPeople,并实现People。
这个时候,如果在People中增加一个方法。则,需要修改GirlPeople增加这个方法的实现。或者分别在BoyPeople和Tomboy中都实现新增的方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处: