抽象类:-实时示例
问题内容:
最近,在一次采访中,有人问我一个非常笼统的问题:“
java中的抽象是什么”。我给出了定义,接着是关于抽象的其他问题,即什么是抽象方法以及抽象方法与具体方法之间的区别等。最后面试官要求我提供一个实时示例,说明我应该使用或将类定义为抽象类。我感到困惑。我给出了一些示例,但他没有被说服。
我用谷歌搜索,但没有找到真正的解决方案。
因此有人可以给我实时示例,即当他/她的项目中将类定义为抽象时,为什么?
谢谢。
问题答案:
从这里可以找到一个实时的好例子:
抽象类的一个具体示例是名为Animal的类。您会在现实生活中看到许多动物,但只有几种动物。也就是说,您永远不会看着紫色和毛茸茸的东西,而说“那是一种动物,没有更具体的定义方法”。相反,您看到的是狗,猫或猪……所有动物。关键是,您永远也看不到没有四处走动的动物(鸭子,猪等)。Animal是抽象类,Duck
/ Pig / Cat是从该基类派生的所有类。动物可能会提供称为“年龄”的功能,从而使动物的寿命延长一年。它还可能提供称为“
IsDead”的抽象方法,调用该方法时,它将告诉您动物是否死亡。由于IsDead是抽象的,每个动物都必须执行它。因此,猫可能会在14岁时决定死亡,而鸭子可能会在5岁后决定死亡。抽象类Animal为所有从其派生的类提供Age函数,但是这些类中的每一个都必须自己实现IsDead。
一个业务示例:
将List作为抽象类是没有意义的,因为anArrayList与LinkedList的工作方式存在根本差异。同样,映射和设置。而且,如果我只使用一组对象,而不必关心它是列表,地图还是集合,则可以使用Collection接口。