我正在浏览一些 Java 代码,我看到很多抽象类,其中不包含任何内容。
例如。像这样的东西 -
public abstract class Processor
{
}
他们虽然有具体的实现类。在什么情况下这样的抽象类才有意义?
IMO,当您想要创建具有所有子类共有的行为和状态的基类时,抽象类优于接口。我不确定空抽象类是否比接口更有用。通常,标记接口是空的。
Abstract
当您有一些对所有可能的实现类都通用的逻辑时,将使用类。
编写一个Abstract class
内部没有任何内容并且扩展它的不同类几乎没有用。唯一difference
的是您可以handle
对所有具体类使用相同的。
在一些库中,他们会使用反射来寻找这些标记抽象类的实现。这也是一种通过抽象类名本身为您的代码提供的文档。
一种情况是,如果您不希望使用new
关键字实例化您的类,那么您可以将其定义为抽象的。