首页 > 解决方案 > 当覆盖方法时,为什么必须先在超类中编写它,即使它对超类没有意义?

问题描述

当覆盖一个方法时,为什么有必要在超类中编写该方法,即使该方法在超类中没有用,所以在子类中覆盖该方法是否足够有意义。例如,如果有一个超类 A,有两个子类 B 和 C,我想覆盖一个方法 D,它只对子类 B 和 C 有意义,对超类 A 没有意义,那么为什么我们需要编写那个覆盖的方法A中的D,为什么我们不能只写在子类B和C中,而方法D对超类A没有意义。

标签: javaoopinheritancemethodsoverriding

解决方案


如果你不想在超类中实现,你可以使方法和超类抽象。

abstract public class A {
    public abstract void aMethod();
}


public class B extends A{
    @Override
    public void aMethod() {
    }
}


public class C extends A {
    @Override
    public void aMethod() {
    }
}

推荐阅读