接口中的常量和静态方法

接口中的常量和静态方法

老师,接口里的常量和静态方法能不能被实现类所继承。

如果能,那么接口的引用指向实现类实例对象后,是不是引用.常量名(或者方法名)就能调用?

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

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

4回答
吃吃吃鱼的猫 2019-06-15 18:05:34

同学你好,因为接口与实现类中不能叫做继承,所以这种说法确实不太规范。

但是根据同学的意思来说,实现类中是会“继承”接口的默认方法和常量的。也就是说,实现类中是存在接口定义的默认方法和常量的。

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

吃吃吃鱼的猫 2019-06-12 19:29:39

同学你好,可以理解为:

实现类能继承接口的常量和默认方法。

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

  • 提问者 鱼儿0001 #1
    老师的回复好牵强。实现类能继承接口的常量与默认方法,是不是这个说法本身就是错误的?
    2019-06-15 15:11:57
吃吃吃鱼的猫 2019-06-12 18:09:07

如同学所说,对于接口与实现类来说,没有继承不继承的问题,只有在实现类中实现或重写接口方法的问题。

实现类中默认隐藏接口的默认方法和常量。

接口的默认方法,在实现类中可以不被重写。

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

  • 提问者 鱼儿0001 #1
    老师你的回答很绕啊。老师,实现类到底能不能继承接口的常量和默认方法呢?
    2019-06-12 19:03:15
好帮手慕小班 2019-06-10 18:18:59

同学你好,1、在接口中添加静态方法是JDK8的新特性,但是在接口中添加静态方法带来了一个限制 :就是这些方法不能由实现它的类继承。  原因是:因为一个类可以实现多个接口。如果2个接口具有相同的静态方法,它们都将被继承,编译器就不知道要调用哪个接口!

所以接口中的静态方法的使用方式-->接口名.方法名!

2、其余的接口中的常量和默认方法,都可以通过引用对象.常量名(默认方法名)来调用,例如

定义接口

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

定义测试类实现这个接口

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

只有默认方法和常量可以调用!

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

  • 提问者 鱼儿0001 #1
    谢谢老师的耐心回复。我突然想到,因为接口的抽象方法必然要被重写,所以在实现类没有继承不继承的问题。但是,接口的默认方法和常量,在实现类能被继承吗?实现类默认隐藏可以继承接口的默认方法和常量吗?
    2019-06-12 17:17:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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