java抽象类和接口将发生什么变化
我们有一个抽象类Parent
,还有另外两个类:class ChildOne
和Childtwo
,它们都继承自Parent
问题:如果我们将Parent
声明为一个接口,当ChildOne
和ChildTwo
都实现这个接口时,会发生什么变化
你可以在下面搜索框中键入要查询的问题!
我们有一个抽象类Parent
,还有另外两个类:class ChildOne
和Childtwo
,它们都继承自Parent
问题:如果我们将Parent
声明为一个接口,当ChildOne
和ChildTwo
都实现这个接口时,会发生什么变化
# 1 楼答案
假设你的意思是定义,当你说“如果我们拒绝将父接口作为接口”时,变化如下。 1.你应该放松在家长课堂上写的功能。 2.无论在接口中定义什么抽象函数(替换父函数),都必须为子函数编写不同的独立实现
# 2 楼答案
这些类不会发生任何变化——它们只能扩展一些不同的类(因为在Java中,一个类只能扩展一个类,但可以实现许多接口)。因此,如果可能的话,最好将父类声明为接口,而不是抽象类
当然,如果在父类中定义了一些字段、构造函数或非抽象方法,就不可能将
Parent
从抽象类更改为接口。记住,接口只能保存抽象方法声明——没有字段、方法实现或构造函数声明(除非我们说的是静态字段/方法,但当我们谈论继承时,这些是不可能的)# 3 楼答案
当
Parent
作为抽象类时,ChildOne
和ChildTwo
将继承Parent
中定义的非抽象方法。这意味着,默认情况下,ChildOne
和ChildTwo
将从Parent
获得一些功能。当ChildOne
和ChildTwo
具有一些公共功能时,这尤其有用,这些功能可以放在Parent
中当您将
Parent
作为接口时,ChildOne
和ChildTwo
将需要实现Parent
中的所有方法# 4 楼答案
语法,这些类将需要
implements Parent
而不是extends Parent
在Java 7或更早版本中,接口不能包含方法实现,因此需要在
ChildOne
和ChildTwo
中重写它们。(自Java8以来,您可以在接口中编写默认方法实现)由于接口不能保存一个属性,所以还需要在
ChildOne
和ChildTwo
中复制它们# 5 楼答案
如果将抽象类转换为接口,则需要