java - 如果我们有压倒性的概念,为什么还要抽象呢?

标签 java abstract-class

如果我们有重写的概念,为什么我们应该选择抽象类。不管怎样,我们必须扩展抽象类来定义抽象方法,我们可以简单地扩展和重写它的抽象方法,那么使其抽象的逻辑是什么?

最佳答案

假设您将制造许多不同类型的汽车:家用车、跑车、F1 赛车...

对于所有这些,accelerate() 方法将有一个非常不同的实现。 假设您不会将 Car 设为抽象类,并提供加速的实现。

如果有人要制造一辆 F1 赛车,他可能会想:我们已经有了加速功能,没有理由不使用它。最终,我们可能会让所有类型的汽车以完全相同的方式加速。

这会导致 F1 比赛速度非常慢,或者交通状况基本就连闪电侠都不想成为行人。

抽象类是告诉“做什么”,而不是“如何”完成,但与接口(interface)不同,抽象类还可以添加一些非抽象方法。

关于java - 如果我们有压倒性的概念,为什么还要抽象呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643833/

相关文章:

Java - 整数和二进制

java - onResponse返回变量或抛出异常Retrofit 2.0

javascript - 如何使用采用接口(interface)实现类作为参数的方法编写 Flow 接口(interface)?

c++ - 类的抽象成员应该是指针还是引用?

java - 从抽象类层次结构中获取正确的字段?

java - 为什么我不能在构造函数中调用非静态方法作为 this 参数?

java - 关于Java中数组的问题

c# 抽象类 -- "one or the other"替代函数

C++:编译对不相关的派生类、错误或功能的函数调用?

java - Java Spring Boot bean 加载的详细日志记录?