难道一个子类需要重写超类的每个方法或不强制这样做,但子类可以覆盖超类的一些methodes。我有点困惑。
如果子类希望来介绍它继承方法的调用独特的行为,则该方法必须重写。
这种情况最常见的情况:toString
,equals
和hashCode
均有资格被覆盖所有自定义类的,给您的自定义类不希望利用Object#toString
,Object#equals
或Object#hashCode
,这是你的所有“无用”自定义实现。
如果子类不希望引入独特的行为为它继承方法的调用,那么这是不必要的。你可以依靠父类的行为来代替。
如果你的父类是abstract
,那么你别无选择,只能实行不实行什么方法父类的选择。
如果你实现一个接口,相同的原则,抽象类应用 - 因为该接口没有实现任何东西本身,你必须实现该接口规定的方法。
子类不需要重写任何父方法,即使他们可以。强制子类覆盖方法的唯一方法是使抽象的方法(和父类必须是抽象的为好)。