5-12 接口继承问题

5-12 接口继承问题

1、子接口可以继承多个父接口,但是不能实现接口,对吗?

2、子接口可以继承多个父接口的所有属性、方法,但是静态方法不能被继承,对吗?

3、多个父接口出现同名默认方法,子接口必须去重写自己的,对吗?

4、多个父接口出现同名常量,子接口该怎么办?老师,我不知道。

5、多个父接口出现同名静态方法,该怎么调用?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2019-08-25 18:42:27

同学你好,多个父接口存在同名常量,子接口必须单独写一个同名常量,表示当前对象独有的常量内容,否则子接口无法确定继承那个父接口中的常量,直接报错

http://img1.sycdn.imooc.com//climg/5d62652a0001369504300282.jpg

如上所示,需要在子接口中写出这个子接口中独有的常量!

http://img1.sycdn.imooc.com//climg/5d6265790001425f04350279.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕酷酷 2019-08-24 18:01:12

同学你好,

1、第一个问题,子接口继承多个父接口,在创建一个类是可以实现子接口的,老师的视频在2分20秒左右有讲到哦,同学可以回顾一下。

2、第二个问题,你的理解是正确的

3、第三个问题,你的理解是正确的

4、多个父接口出现同名常量,在实现类实现子接口后,通过实现类的对象去调用该常量,是会报错的。

同学可以尝试实现一下代码

例如:

IFather父接口定义一个常量a

http://img1.sycdn.imooc.com//climg/5d6108bf00014c8503530063.jpg

IFather2父接口也定义一个同名常量a

http://img1.sycdn.imooc.com//climg/5d6108e70001e89f03010050.jpg

ISon接口继承上面两个接口

http://img1.sycdn.imooc.com//climg/5d6109060001600004920031.jpg

Demo类实现这个子接口ISon

http://img1.sycdn.imooc.com//climg/5d61091f0001c04304110050.jpg

Test类中,通过实现类的对象去调用该常量,会报错,因为Java并不知道到底调用的是哪个父接口的常量a。

http://img1.sycdn.imooc.com//climg/5d6109450001176d05590147.jpg

5、 多个父接口出现同名静态方法,通过类名进行调用

例如:

IFather接口定义一个say静态方法

http://img1.sycdn.imooc.com//climg/5d610a3d0001ba3204360115.jpg

IFather2接口定义一个同名say静态方法

http://img1.sycdn.imooc.com//climg/5d610a690001d4c604060093.jpg

Test类,通过类名调用say()方法

http://img1.sycdn.imooc.com//climg/5d610a9a00014d1204340165.jpg

输出结果:对应say方法中的内容

http://img1.sycdn.imooc.com//climg/5d610ab90001dd2902480076.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 鱼儿0001 #1
    谢谢老师的耐心回复。关于我问的第四个问题,老师给出了回复:多个父接口存在同名常量,实现子接口的类实例化对象后,在调用上会出现错误。1、这说明:子接口是不是因为父接口同名常量问题,根本就没有去继承任何父接口的常量?2、怎么解决这一错误问题?
    2019-08-25 17:32:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师