【发布时间】:2020-10-10 02:09:42
【问题描述】:
当重写一个方法时,为什么必须在超类中编写该方法,即使该方法在超类中没有用,所以在有意义的子类中重写该方法还不够。例如,如果有一个超类 A,有两个子类 B 和 C,我想覆盖一个方法 D,它只对子类 B 和 C 有意义,对超类 A 没有意义,那么为什么我们需要编写那个覆盖的方法A中的D,为什么我们不能只写在子类B和C中,而方法D对超类A没有意义。
【问题讨论】:
-
您实际上想使用覆盖做什么?您不必在超类中编写方法。您根本不必使用覆盖。也许您正在寻找抽象方法,但不知道您要完成什么,很难说。
-
我建议用两种方式编码,看看会发生什么。编写一个采用
A的方法。传入B或C,它会覆盖A上的方法。然后从A中删除该方法。看看会发生什么。
标签: java oop inheritance methods overriding