5-7的一些问题
1、如图所示,位置2处错误。解析里说:接口中定义的常量在定义时必须初始化。可是,老师,为什么要在接口中定义时必须对常量初始化?
2、在课程里,SmartWatch类没有重写接口类里的connection方法,在测试类里:INet net=new SmartWatch();后,竟然还能net.connection();这样去调用connection方法,老师,net可是指向智能手表类的,智能手表类又没有去重写connection类啊?
3、为什么在接口类里的静态方法static void stop(),没有给此方法加public?不加的情况下,默认是什么修饰符?
4、接口类里的静态方法有什么作用?
5、default void connection() 这个方法怎么去理解?
6、在接口类里写了default void connection()方法,在实现类里重写,为什么访问修饰符变成了public void connection()?并且,在方法体内自动生成一段代码:INet.super.connection();,此代码的作用是调用接口中的connection方法,但是老师直接写成INet.super.connection这怎么理解啊,之前没见过这种写法。
正在回答
同学你好
1、智能手表只实现了INet接口,哪里来的继承的方法呢?
如果接口中没有default修饰,智能手表一定会实现INet接口的connection方法。
INet net=new SmartWatch();net.connection();
这里net调用的connection方法就是智能手表重写后的方法。
2、default在接口中,可以看做一个特殊的区别于修饰符的关键字。也就是说接口中的方法还是公共的,只是加上default后,可以不被实现它的类重写。
3、INet.super.connection();
这种调用方式就是调用接口中default方法,这是java所规定的,同学记住即可,不用过多纠结~
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1、有static修饰的常量,必须在定义的时候初始化,不只在接口中,普通类中也是一样的。如果不这么做,编译就会报错。
2、SmartWatch类重写了connection()方法呀,如下所示,同学说的是这个小节哪个时间点的代码呢?
3、接口中的方法默认都是public的,所以不用加
4、接口中的静态方法和普通类中的静态方法作用一样,都可以通过类名调用。以前接口是没有静态和默认方法的,JDK8以后的版本中开始引入。具体是否需要接口静态方法,还是要看具体需求,不是必须的。
5、default void connection()这个是接口中的默认方法,按照视频中的介绍掌握它的使用就可以了
6、接口中的方法默认就是public的。老师在视频中写的就是INet.super.connection();这个调用在此处第一次出现,是调用接口默认方法的语法规则。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星