如果我们有重写的概念,为什么我们应该选择抽象类。不管怎样,我们必须扩展抽象类来定义抽象方法,我们可以简单地扩展和重写它的抽象方法,那么使其抽象的逻辑是什么?
最佳答案
假设您将制造许多不同类型的汽车:家用车、跑车、F1 赛车...
对于所有这些,accelerate() 方法将有一个非常不同的实现。 假设您不会将 Car 设为抽象类,并提供加速的实现。
如果有人要制造一辆 F1 赛车,他可能会想:我们已经有了加速功能,没有理由不使用它。最终,我们可能会让所有类型的汽车以完全相同的方式加速。
这会导致 F1 比赛速度非常慢,或者交通状况基本就连闪电侠都不想成为行人。
抽象类是告诉“做什么”,而不是“如何”完成,但与接口(interface)不同,抽象类还可以添加一些非抽象方法。
关于java - 如果我们有压倒性的概念,为什么还要抽象呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643833/