如果无法创建抽象类的新对象,那么在抽象类中使用非抽象方法有什么意义呢?

时间:2013-04-15 06:18:20

标签: java inheritance abstract-methods

抽象类可以同时具有抽象和非抽象方法。如果不能创建抽象类的新对象,那么在抽象类中使用非抽象方法有什么意义呢?

我知道你可以覆盖子类中的非抽象方法,然后通过子类的对象使用它。但是如果你这样做,那么首先需要使用非抽象方法和实现是什么?

5 个答案:

答案 0 :(得分:1)

多想想或谷歌。

  1. 如果您的子类具有通用功能,那么为什么要在每个类中覆盖该方法?你可以使用基类(在这种情况下是抽象的)方法。需要非abtract(具体如他们所谓的)方法。
  2. 虽然有抽象方法(我们已经知道),但我们可以根据我们的要求进行覆盖。
  3. 如果你需要所有方法都应该根据他们的要求覆盖每个子类,那么你可以去接口。

答案 1 :(得分:1)

简单回答:重用和可维护性。

假设有4个具体类扩展你的抽象类,它们都将分享一些行为。

在这种情况下,最好在抽象类中实现该方法,而不是在所有具体类中单独定义它。

答案 2 :(得分:0)

具体子类可以使用抽象超类中的方法。因此,子类之间的所有共享功能都可以进入基本抽象类。

答案 3 :(得分:0)

代码重用。如果不覆盖继承类中的非抽象方法,则从抽象类继承它们。

答案 4 :(得分:0)

要让它们在子类中违反DRY的原则(不要重复自己):如果所有子类都具有相同的功能,为什么要在每个类中重复写入它?