是否应该将抽象超类中的所有方法都声明为抽象?

时间:2013-08-07 19:54:20

标签: java abstract-class superclass

我还没能找到明确的答案。有明确的答案吗?

2 个答案:

答案 0 :(得分:3)

简短回答 - 不。如果您正在编写所有方法都列为抽象的内容,请考虑使用interface

答案很长: 在抽象类中,您可以完全实现某些方法(通常,您打算在抽象类的扩展程序之间共享的方法)和其他可以抽象的方法以强制扩展程序实现它们。所有其他方法都可以像往常一样自由引用所有方法(抽象的和实现的)。

答案 1 :(得分:1)

抽象类不必具有任何抽象方法。您可以将部分或全部方法视为抽象。无论您是否声明,接口的所有方法都是抽象的。如果您实现了一个接口但没有定义这些方法,那么即使您没有在抽象类中提及它们,它们在类中也是有效的抽象。

e.g。

interface A {
     void method(); // implicitly abstract
}

abstract class B implements A {
     // B has one abstract method
}