抽象类可以同时具有抽象方法和非抽象方法。如果无法创建抽象类的新对象,那么在抽象类中使用非抽象方法有什么意义?
我知道您可以覆盖子类中的非抽象方法,然后通过子类的对象使用它。但是,如果您这样做,那么首先需要具有实现的非抽象方法是什么?
抽象类可以同时具有抽象方法和非抽象方法。如果无法创建抽象类的新对象,那么在抽象类中使用非抽象方法有什么意义?
我知道您可以覆盖子类中的非抽象方法,然后通过子类的对象使用它。但是,如果您这样做,那么首先需要具有实现的非抽象方法是什么?
多思考或多谷歌。
简单的答案:重用和可维护性。
假设有 4 个具体类扩展了您的抽象类,它们都将共享一些行为。
在这种情况下,最好在抽象类中实现该方法,而不是在所有具体类中单独定义它。
具体的子类可以使用抽象超类中的方法。所以子类之间的所有共享功能都可以进入基础抽象类。
代码重用。如果您不在继承类中覆盖非抽象方法,则从抽象类继承它们。
取而代之将它们放在子类中违反了 DRY 原则(不要重复自己):如果所有子类都具有相同的功能,为什么要在每个类中重复编写呢?