接口是否可继承接口(java)

Python017

接口是否可继承接口(java),第1张

Java语法中,接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。

Java语法中,使用interface定义一个接口,使用class定义一个类,使用关键字abstract+class定义一个抽象类。以下分别对这3个知识点进行解析:

1、接口可以继承接口

接口可以多继承接口,例如:Interface1ExtendsInterface2,Interface3,Interface4??

代码示例为:

publicinterfaceInterface1{

publicvoidmethod1()

}

publicinterfaceInterface2extendsInterface1{

publicvoidmethod2()

}

publicinterfaceInterface3extendsInterface1,Interface2{

publicvoidmethod3()

}

2、抽象类可以实现接口

抽象类实现接口时,可以完全重写或覆盖接口中的方法,也可只重写接口中的部分方法。

代码示例为:

publicinterfaceInterfaceA{

publicvoidmethod1()

publicvoidmethod2()

publicvoidmethod3()

}

abstractclassClassAimplementsInterfaceA{

publicvoidmethod1(){}

publicvoidmethod2(){}

}

3、抽象类可以继承实体类

抽象类可以继承实体类,但前提是实体类必须有明确的构造函数。

代码示例为:

classEntityA{

publicEntityA(){

//构造函数

}

publicvoidhelloWorld(){

System.out.println("hello")

}

}

abstractclassClassAextendsEntityA{}

扩展资料:

1、Java继承或实现接口时需要遵循的原则:

(1)类优先于接口。如果一个子类继承的父类和接口有相同的方法实现。那么子类继承父类的方法。

(2)子类型中的方法优先于父类型中的方法。

(3)如果以上条件都不满足,则必须显示覆盖/实现其方法,或者声明成abstract。

2、Java实现多继承的方式:

(1)Java中一个类不能继承多个具体class。 

(2)一个类只可继承自一个具体class,但可实现多个接口。interface不涉及到实现细节,不与任何存储空间有关连。新类可继承自一个具象class,其余继承都得是interfaces。

(3)outerclass不可继承自多个具体class,可在其内部设多个innerclass,每个innerclass都能各自继承某一实现类。innerclass不受限于outerclass是否已经继承自某一实现类。 

(4)innerclass可以说是多重继承问题的完整解决方案。一个类不能继承自多个一般类。但我们可以让其内部的多个innerclass各自继承某一实现类达到类似的目的。

参考资料来源:Java官方文档-接口(interface)

类是具有相同属性和方法的集合。

继承是父类和子类之间的一种类的复用方式

包是组织一系列相关类和接口的一个命名空间

接口是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

首先的话,在 Java 中应该说“扩展”(extend)而不是“继承”(inherit),尽管知道它实现上就是C++那种继承,但逻辑上是不完全相同的。

再考虑到接口即协议,对接口的扩展,或是说对协议的扩展,实际上就包括了对其公用方法的扩展以及对其定义的扩展两个方面,其中扩展接口定义实际上即为对协议添加更多的约束,在减少了其可能包含的类的种类的同时也给了这些类更清晰的定义,也就允许用户基于这更清晰的定义做出更多的操作了。

所以呢,实际类的扩展实际上和继承是相同的,子类确实继承了父类的实现,但接口的扩展则只会获取到父接口的方法声明,继承的意味并不明显,更多的实际上在于对其原协议的扩展,因此应将子接口和父接口间的关系视为扩展而不单单是继承

其实就是多去思考为什么在Java这叫扩展不叫继承,很多问题就迎刃而解了