java中接口可以实现多个接口吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中接口可以实现多个接口吗相关的知识,希望对你有一定的参考价值。
接口是常量值和方法定义的集合。接口是一种特殊的抽象类。
java类是单继承的。classB Extends classA
java接口可以多继承。Interface3 Extends Interface0, Interface1, interface……
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
注意:
(1)一个类如果实现了一个借口,则要实现该接口的所有方法。
(2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。
(1)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。
总结
首先说明java多实现的背景:
c++中的指针和多重继承易产生安全问题。子类有多个父类,父类又有其父类,继承树很复杂,方法重写和构造易混乱,代码也不易维护。
java吸取教训,采用了单继承多实现的方式。
显然这种bug,接口编写者不会发现,只有程序员在写实现类时,ide首先就会报错。
解决方法:实现类里写个内部类,分别实现两个接口。
补:java规范里,方法名+参数(不含返回值类型)唯一确定一个方法。
参考技术A 一个类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。- 官方服务
- 官方网站官方网站
java中接口可以实现多个接口吗?
接口只能继承多个接口。java中接口其实里面全是抽象类 ,抽象类就是只有方法名,方法体没有 ,也就是说方法没有实现, 接口可以继承多个接口,而类可以实现多个接口,你实现一个接口,相当于从它那里可以得到它的抽象方法。而自己也可以增加自己的方法。打个比方
猴子会吃东西 是抽象的 没有具体的只吃哪样
而 人也会吃东西 人可以继承猴子吃东西的 方法 那人也可以吃东西了 人还可以给自己添加独特的方法 比如上网等
而接口方便 在于 对于动物来说 都会吃东西 所以我们把这个共性的方法抽取出来成为抽象方法放到接口里 ,
那这样 各种各样的动物都可以去继承这个方法 那它也就拥有了这个方法 参考技术A public class Car
Carinterface a,b,c;
void set(Car1 a,Car2 b,Car3 c,)
this.a=(Carinterface)a; //做类型转换,说是强转也可以
this.b=(Carinterface)b;
this.c=(Carinterface)c;
void getPrice()
System.out.println(a.getPrice()); //输出Car1类的实现
System.out.println(b.getPrice()); //输出Car2类的实现
System.out.println(c.getPrice()); //输出Car3类的实现
//因为a,b,c是Carinterface类型的。
但是传入的是Car1,Car2,Car3类型的,会被自动转换为Carinterface类型
通过接口函数调用的时候,虽然都是Carinterface类型
但是会自动调用到Car1,Car2,Car3类型的个子的 getPrice实现方法。 参考技术B 首先,java中的接口别说实现多个接口了,一个接口也不能实现。因为接口中的方法是没有方法体的,所以不能实现任何接口。
其次,一个接口可以继承多个接口。因为类如果可以多继承,实例化时,如果要调用父类的方法,如果两个一样,根本就不知道该调用那个父类的方法; 但是接口就不一样了,因为接口继承多个接口,就算多个接口有相同的方法,但是最终实现接口的类只能实现一个方法且@Override一个方法,所以调用时就不会有问题了。
至于抽象类和普通类一样,因为抽象类中可以有普通的方法(带有方法体),也可以有抽象方法,所以抽象类可以实现多个接口。 参考技术C 接口只能继承多个接口。java中接口其实里面全是抽象类 ,抽象类就是只有方法名,方法体没有 ,也就是说方法没有实现, 接口可以继承多个接口,而类可以实现多个接口,你实现一个接口,相当于从它那里可以得到它的抽象方法。而自己也可以增加自己的方法。
打个比方
猴子会吃东西 是抽象的 没有具体的只吃哪样
而 人也会吃东西 人可以继承猴子吃东西的 方法 那人也可以吃东西了 人还可以给自己添加独特的方法 比如上网等
而接口方便 在于 对于动物来说 都会吃东西 所以我们把这个共性的方法抽取出来成为抽象方法放到接口里 ,
那这样 各种各样的动物都可以去继承这个方法 那它也就拥有了这个方法 参考技术D 接口只能继承接口,不能实现接口。只有类才能实现接口,类可以实现多个接口。
以上是关于java中接口可以实现多个接口吗的主要内容,如果未能解决你的问题,请参考以下文章
java 当一个接口被多个类继承时 如何知道是调用的哪个类的实现