子类的超类方法 Java
Superclasses methods for subclasses Java
子类是否需要重写超类的每个方法,或者不是强制性的,但子类可以重写超类的某些方法。我有点困惑。
Subclasses 不需要覆盖任何父方法,即使它们可以。强制子 class 覆盖方法的唯一方法是使该方法抽象(并且父 class 也必须是抽象的)。
如果子class希望引入独特的行为来调用它继承的方法,那么该方法必须被覆盖。
最常见的情况是:toString
、equals
和 hashCode
都可以覆盖您的所有自定义 classes,前提是您的自定义 class 不想利用 Object#toString
、Object#equals
或 Object#hashCode
,它们都是 "unhelpful" 用于您的自定义实现。
如果子class 不希望引入独特的行为来调用它继承的方法,那么这是不必要的。您可以依赖 parent class' 行为。
如果你的parentclass是abstract
,那么你别无选择只能实现parent的方法class选择不实施。
如果您要实现一个接口,则适用与抽象 classes 相同的原则 - 因为该接口本身不实现任何东西,您 必须 实现这些方法接口规定的。
子类是否需要重写超类的每个方法,或者不是强制性的,但子类可以重写超类的某些方法。我有点困惑。
Subclasses 不需要覆盖任何父方法,即使它们可以。强制子 class 覆盖方法的唯一方法是使该方法抽象(并且父 class 也必须是抽象的)。
如果子class希望引入独特的行为来调用它继承的方法,那么该方法必须被覆盖。
最常见的情况是:toString
、equals
和 hashCode
都可以覆盖您的所有自定义 classes,前提是您的自定义 class 不想利用 Object#toString
、Object#equals
或 Object#hashCode
,它们都是 "unhelpful" 用于您的自定义实现。
如果子class 不希望引入独特的行为来调用它继承的方法,那么这是不必要的。您可以依赖 parent class' 行为。
如果你的parentclass是abstract
,那么你别无选择只能实现parent的方法class选择不实施。
如果您要实现一个接口,则适用与抽象 classes 相同的原则 - 因为该接口本身不实现任何东西,您 必须 实现这些方法接口规定的。