子接口与父接口

子接口与父接口

老师,子接口可以有多个父接口,当多个父接口有同名默认方法后,需要在子接口去重写此方法

那么,1、当多个父接口有同名常量后,子接口需要去重写吗?

2、只有一个父接口的情况下,子接口能继承父接口的常量和静态方法吗?如能可以,该怎么调用

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

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

2回答
吃吃吃鱼的猫 2019-06-12 18:22:50

同学你好,理解正确。

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

好帮手慕小班 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;来重新定义,测试方法是会报错哟!

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

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

2、只有一个父接口的情况下,子接口能继承父接口的常量和静态方法   -->回答:子接口不会继承接口中的静态方法,因为如果两个接口具有相同的静态方法,它们都将被继承,编译器就不知道要调用哪个接口。所以静态方法不能被继承!

但是子接口能继承父接口中的常量!

同上代码修改第二个父接口为

public interface Test2 extends TestInte{
	//int TEMP=30;
	
}

测试方法为实现接口Test2

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

所以接口中的常量是可以继承的!

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

  • 提问者 鱼儿0001 #1
    谢谢老师!那老师,父接口的抽象方法和默认方法,子接口能不能继承呢?
    2019-06-12 17:31:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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