从这里可以找到一个实时的好例子:
抽象类的一个具体示例是名为Animal的类。您会在现实生活中看到许多动物,但只有几种动物。也就是说,您永远不会看着紫色和毛茸茸的东西,而说“那是一种动物,没有更具体的定义方法”。相反,您看到的是狗,猫或猪……所有动物。关键是,您永远也看不到没有四处走动的动物(鸭子,猪等)。Animal是抽象类,Duck
/ Pig / Cat是从该基类派生的所有类。动物可能会提供称为“年龄”的功能,从而使动物的寿命延长一年。它还可能提供称为“
IsDead”的抽象方法,调用该方法时,它将告诉您动物是否死亡。由于IsDead是抽象的,每个动物都必须执行它。因此,猫可能会在14岁时决定死亡,而鸭子可能会在5岁后决定死亡。抽象类Animal为所有从其派生的类提供Age函数,但是这些类中的每一个都必须自己实现IsDead。
一个业务示例:
将List作为抽象类是没有意义的,因为anArrayList与linkedList的工作方式存在根本差异。同样,映射和设置。而且,如果我只使用一组对象,而不必关心它是列表,地图还是集合,则可以使用Collection接口。



