为什么我们需要Java中的抽象类?[已关闭]

为什么我们需要Java中的抽象类?如果你永远不会把它变成一个物体,为什么一开始就把它放在第一位呢?你如何使用它?为什么会在那里?

我对抽象方法也抱有同样的想法。我发现这似乎是一个类似的概念,就像有一个超级类,没有任何子类,可以做出任何重要的子类。


答案 1

抽象类可以用作其他类的模板类型。抽象类将保存扩展它的所有类的通用功能。

例如:

Abstract Class Animal 

所有动物都会移动,呼吸和繁殖,因此这些动物可以放入动物类。

现在

 Concrete Class Dog, Cat etc.

已提供这些基本函数。


答案 2

抽象类允许在类中提供方法的一部分默认实现。由于它们不完整,因此无法按原样实例化和使用它们,但是可以对它们进行子类化,以特定于该特定实现的方式添加缺少的详细信息,并且可以实例化这些子类。

如果没有抽象类,则必须提供要重写的方法的虚拟实现...这是可以做到的,但随后会有忘记实现其中一个的风险。让一些方法保持完全抽象,可以确保实际的实现必须填补空白,或者继续抽象,并迫使它们的后代这样做。

这不是语言不能没有的东西。但它非常有用。随着你对Java和OO设计的熟练程度越来越高,你会发现它是多么有用。