子类是否需要重写超类的每个方法,或者不是必须重写,但子类可以重写超类中的一些方法。我有点困惑。
子类不需要覆盖任何父方法,即使它们可以。强制子类重写方法的唯一方法是使该方法抽象(父类也必须是抽象的)。
如果子类希望为其继承的方法的调用引入唯一行为,则必须覆盖该方法。
最常见的情况是:toString
、equals
和hashCode
都有资格被所有自定义类覆盖,因为您的自定义类不想利用Object#toString
、Object#equals
或Object#hashCode
,它们对您的自定义实现都"毫无帮助"。
如果子类不希望为其继承的方法的调用引入唯一行为,那么这是不必要的。您可以依赖父类的行为。
如果您的父类是abstract
,那么您别无选择,只能实现父类选择不实现的方法。
如果您正在实现一个接口,则适用与抽象类相同的原则-因为该接口本身不实现任何东西,所以您必须实现该接口规定的方法。