1

我正在浏览一些 Java 代码,我看到很多抽象类,其中不包含任何内容。

例如。像这样的东西 -

public abstract class Processor
 {

 }

他们虽然有具体的实现类。在什么情况下这样的抽象类才有意义?

4

4 回答 4

3

IMO,当您想要创建具有所有子类共有的行为和状态的基类时,抽象类优于接口。我不确定空抽象类是否比接口更有用。通常,标记接口是空的。

于 2012-08-07T18:39:53.580 回答
2

Abstract当您有一些对所有可能的实现类都通用的逻辑时,将使用类。

编写一个Abstract class内部没有任何内容并且扩展它的不同类几乎没有用。唯一difference的是您可以handle对所有具体类使用相同的。

于 2012-08-07T18:50:17.720 回答
0

在一些库中,他们会使用反射来寻找这些标记抽象类的实现。这也是一种通过抽象类名本身为您的代码提供的文档。

于 2012-08-07T18:33:46.270 回答
0

一种情况是,如果您不希望使用new关键字实例化您的类,那么您可以将其定义为抽象的。

于 2012-08-07T18:30:30.630 回答