一个抽象类能否继承另一个抽象类并增加功能?

36

我有一个抽象类。我想通过另一个抽象类扩展这个抽象类,然后实现扩展后的抽象类。这种做法可行吗?如果是,从面向对象的角度来看,这是否是一个好的方法?

可以实现通过一个抽象类去扩展另一个抽象类,并且实现扩展后的抽象类。在面向对象编程中,这种方法也是合理的。但需要注意,在某些情况下,可能会导致代码结构复杂或难以维护。因此建议在使用前仔细评估设计需求并进行权衡。

1
如果您描述具体情况,您可能会得到更好的答案。 - brabec
5个回答

36

我不确定特指Java,但应该是有效的。

就面向对象编程而言,如果有意义,那么就可以使用。举个例子,你可能有一个抽象类Vehicle,然后有LandVehicleFlyingVehicle这两个抽象类。只要你的示例作为一个抽象类是有意义的,那么你就没问题了。


16

是的,这是可能的,如果你需要的话我认为没有理由不使用它(免责声明:但是有很多方式可以误用它,以及过度复杂化事情,通常在编程中一切都是如此)。

需要注意的一件事情是,第二个抽象类不需要实现第一个类的抽象方法,但第一个具体类必须实现两者。


4
是的,可以!一个抽象类可以被另一个抽象类继承。

2

是的!

但只有当抽象子类添加更多功能(无论是抽象的还是非抽象的)时,才有意义。

否则,我看不出有什么意义。


0

是的,你可以做到。如果你的子类添加更多功能,这是很好的实践。它有助于向规范靠拢。父类变成了一个更通用的类,而子类变成了一个更具体的类。你可以根据需求实现两者。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接