子类是否需要重写超类的每个方法,或者不是必须这样做,但是子类可以重写超类的某些方法。我有点困惑。
答案 0 :(得分:2)
子类不需要重写任何父方法,即使它们可以。强制子类重写方法的唯一方法是使该方法抽象(父类也必须是抽象的)。
答案 1 :(得分:1)
如果子类希望引入独特的行为来调用其继承的方法,则该方法必须被覆盖。
最常见的情况是:toString
,equals
和hashCode
都有资格被所有自定义类覆盖,因为您的自定义类不想利用Object#toString
,Object#equals
或Object#hashCode
,这对于您的自定义实现都是“无益的”。
如果子类不希望引入唯一的行为来调用其继承的方法,则没有必要。您可以改为依赖父类的行为。
如果您的父类是abstract
,那么您别无选择,只能执行父类选择不实现的方法。
如果要实现接口,则与抽象类相同的原理适用-由于接口本身未实现任何东西,因此必须实现接口规定的方法。