接口是否继承接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口是否继承接口相关的知识,希望对你有一定的参考价值。

原文地址: https://blog.csdn.net/zhoufoxcn/article/details/1700018

接口可以继承接口,并且可以继承不只一个接口,但是不能实现接口。因为接口的成员方法都具有抽象属性,不具有方法体无法实现继承的接口。

在传统的教科书或者书籍中都会灌输我们一个观念,那就是抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),接口也不能被继承(extends),但是今天这个观点有些地方被颠覆了。

抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),这三个观点确实没有什么问题,但是接口却是可以被继承的,当然你也许会举一个类似下面的例子来证明接口是不能被继承的,代码如下:
技术分享图片
确实上面的代码不能被编译通过,会出现以下错误:
技术分享图片
也许你就想以上面的例子来证明我的观点是错误的,但是请看下面的例子:
技术分享图片
看看图中高亮部分代码,它是可以通过编译的,下面的编译结果:
技术分享图片

 

通过以上实例说明接口之间是可以继承的,也就是所谓的接口扩充,这样一来继承了一个接口的类就有了两个接口的方法。

总结:接口可以继承接口,类只能实现接口。

接口可以继承多个接口

 

interface test1{}
    interface test2{}
    interface test3{}
    interface test4 extends test1,test2,test3{}

 

接口是常量值和方法定义的集合。接口是一种特殊的抽象类。

java类是单继承的。classB Extends classA
java接口可以多继承。Interface3 Extends Interface0, Interface1, interface…… 
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。 
注意  
1)一个类如果实现了一个借口,则要实现该接口的所有方法。
2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。 
3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。







以上是关于接口是否继承接口的主要内容,如果未能解决你的问题,请参考以下文章

java 代码片段

php如何实现多继承?

静态代码块类的继承和接口

接口继承自System.Object吗?

接口是否继承接口

15接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法?