在什么情况下,你更喜欢没有方法的抽象类



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

例如,像这样的东西 -

public abstract class Processor
 {
 }

不过,它们有具体的实现类。在什么情况下,这样的抽象类才有意义?

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

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

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

其中

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

在某些库中,他们将使用反射来查找这些标记抽象类的实现。此外,这是通过抽象类名本身为您的代码提供的文档。

最新更新