11个回答
展开全部
接口可以继承多个接口。
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
interface b{}
interface c{}
interface a extends b,c{}//对
class b{}
class c{}
class a extends b,c{}//错
楼主问的是接口的继承问题,不是接口的实现问题,楼上似乎只知道类的继承和接口的实现,而不知道接口也是可以继承接口的。
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
interface b{}
interface c{}
interface a extends b,c{}//对
class b{}
class c{}
class a extends b,c{}//错
楼主问的是接口的继承问题,不是接口的实现问题,楼上似乎只知道类的继承和接口的实现,而不知道接口也是可以继承接口的。
展开全部
Java不允许类多重继承的原因是:假设有类A和B,各自里面都包含一个叫做test的方法。那么如果有一个类C同时继承AB,那么C中的test方法究竟是来自A的还是B的呢?
C++中允许这种多重继承,但是使用起来很麻烦,用test方法的时候要加上前缀,指明是A类的还是B类的,例如A::test(),很容易出错。所以Java中摈弃了类的多重继承。
但是接口不同,接口只是方法的声明,并没有方法的具体实现。例如接口A和B,即使都有个方法叫test,它们并没有规定这个test的具体如何实现。所以假设有个C接口同时继承A、B接口,并不会存在C中的test方法来自A还是来自B的冲突问题(因为A、B中的test方法没有具体实现,随便来自哪个都是可以的)。所以接口是可以多重继承的。
用MyEclipse写了一个测试代码,测试接口也的确可以多重继承,编译通过。
C++中允许这种多重继承,但是使用起来很麻烦,用test方法的时候要加上前缀,指明是A类的还是B类的,例如A::test(),很容易出错。所以Java中摈弃了类的多重继承。
但是接口不同,接口只是方法的声明,并没有方法的具体实现。例如接口A和B,即使都有个方法叫test,它们并没有规定这个test的具体如何实现。所以假设有个C接口同时继承A、B接口,并不会存在C中的test方法来自A还是来自B的冲突问题(因为A、B中的test方法没有具体实现,随便来自哪个都是可以的)。所以接口是可以多重继承的。
用MyEclipse写了一个测试代码,测试接口也的确可以多重继承,编译通过。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多个!!!
接口允许多重继承并且接口之间也可以存在多重继承关系,但是接口只能继承自接口不能继承类,继承关键字extends而不是implements。
接口允许多重继承并且接口之间也可以存在多重继承关系,但是接口只能继承自接口不能继承类,继承关键字extends而不是implements。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
继承extends 只能有一个
所以采用接口implements后可以接多个
你说的extends那当然就只能继承一个了
所以采用接口implements后可以接多个
你说的extends那当然就只能继承一个了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
继承父类只能有1个,接口可以有多个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询