接口是否继承接口
原文地址: 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
类型,缩小了方法的使用范围)。