为什么我们需要Java中的抽象类?如果你永远不会将其转换为对象,为什么一开始就要有它呢?如何使用它?它的存在原因是什么?
我对抽象方法也感到困惑。我觉得这似乎是一个类似于拥有超类但没有任何可能被创建的子类的概念。
我对抽象方法也感到困惑。我觉得这似乎是一个类似于拥有超类但没有任何可能被创建的子类的概念。
抽象类可以作为其他类的模板类型。这个抽象类将为所有扩展它的类保持共同的功能。
例如:
Abstract Class Animal
所有动物都会移动、呼吸和繁殖,因此它们可以归入动物类别。
现在,
Concrete Class Dog, Cat etc.
这些基本功能已经提供。
抽象类有很多用途。抽象类的主要目的是作为基类,可以被子类扩展以创建完整的实现。
例如,您的程序可能需要实现三个步骤:
在这种情况下,您可以定义一个带有这三个方法的抽象类,如下所示:
public abstract MyAbstractProcess {
public void stepBefore() {
// Implementation directly in abstract superclass
}
public abstract void action(); // Implemented by subclasses
public void stepAfter() {
// Implementation directly in abstract superclass
}
}
此外,上述的抽象类Animal示例也是一个非常好的例子。