关于接口中的默认方法和静态方法中super的使用有两个问题

关于接口中的默认方法和静态方法中super的使用有两个问题

1、super表示的不是父类的意思吗

INet.super.connection();

这个代表的不是INet的父类中的connection吗,感觉INet父类中没connection

如果这个super代表的是实现类SmartWatch的父类,不应该用SmartWatch new一个对象,然后再调用super.connection();吗


2、INet.super.connection为什么只能再connection重写方法中使用

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

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

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

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

1回答
好帮手慕小尤 2020-12-07 11:54:40

同学你好,1. INet.super.connection();这个是Java的语法规则,指的是调用父类INet接口默认的connection()方法(同学记住即可)。同学可以理解为INet.super代表的是INet接口,通过INet.super调用的是INet接口中的connection()方法。

2. 在类中无法直接调用方法,需要在方法中进行书写。如下所示:

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

注:定义属性和变量,才可以单独在类中书写。这属于语法,同学知道即可。

  • 提问者 一娆Hacker #1

    老师,只是不太理解。之前学继承的时候,this.super 代表的是这个类的父类,现在INet.super不应该代表INet这个接口的父类吗? 

    感觉有点抽象,其实我也明白大概意思,就是和前面继承比,有点不太理解


    2020-12-07 14:27:48
  • 好帮手慕小尤 回复 提问者 一娆Hacker #2

    同学你好,这是一个语法,同学知道可以通过接口名.super 调用接口中的默认方法即可。不需要与继承中super 进行对比。同学记住如何使用即可。

    祝学习愉快!

    2020-12-07 16:11:22
  • 提问者 一娆Hacker 回复 好帮手慕小尤 #3

    好吧 谢谢老师

    2020-12-07 20:18:59
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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