子接口与父接口
老师,子接口可以有多个父接口,当多个父接口有同名默认方法后,需要在子接口去重写此方法
那么,1、当多个父接口有同名常量后,子接口需要去重写吗?
2、只有一个父接口的情况下,子接口能继承父接口的常量和静态方法吗?如能可以,该怎么调用
源自:Java多态
5-11 接口的继承
3
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕小班
2019-06-10 19:23:27
同学你好,1、当多个父接口有同名常量后,子接口需要去覆盖,因为如果子接口中没有重新定义这个TEMP,那么测试类中就会不知道要调用哪个接口中的TEMP!
例如:
第一个父接口
public interface TestInte { int TEMP=10; static void fleey(){ System.out.println("Test"); } default void connection(){ System.out.println("调用connection方法"); } }
第二个父接口
public interface Test2 { int TEMP=30; }
子接口
public interface Test3 extends TestInte,Test2{ int TEMP=40; }
测试类
public class Test04 implements Test3{ public static void main(String[] args) { Test04 test=new Test04(); System.out.println(test.TEMP); } }
这样是不报错的
但是如果没有在子接口中写int TEMP=40;来重新定义,测试方法是会报错哟!
2、只有一个父接口的情况下,子接口能继承父接口的常量和静态方法 -->回答:子接口不会继承接口中的静态方法,因为如果两个接口具有相同的静态方法,它们都将被继承,编译器就不知道要调用哪个接口。所以静态方法不能被继承!
但是子接口能继承父接口中的常量!
同上代码修改第二个父接口为
public interface Test2 extends TestInte{ //int TEMP=30; }
测试方法为实现接口Test2
所以接口中的常量是可以继承的!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星