Java - 如何覆盖祖父类方法?

时间:2017-03-22 09:13:25

标签: java polymorphism

我有以下类结构:

 Abstract Class A
 Class B_A extends A

 Abstract Class C_A extends A

 Class D_CA extends CA
 Class E_CA extends CA

A实现方法名称do()

我希望类B_AD_CA将使用基类do()中的方法A,但我需要E_CA类来覆盖它以不同方式实施do()

我怎样才能做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:0)

您只需覆盖do()中的class E_CA方法。

这将导致每个类继承E_CA使用E_CA中的实现(除非它再次被覆盖)。其他所有课程都将使用do()

A的实施
class E_CA extends CA {
    @Override
    public void do() {
        // new implementation
    }
}

答案 1 :(得分:0)

感谢所有人的时间。 我知道我必须在子类上使用@override。 但我有一个错误,它让我发疯。 问题是基类方法被定义为私有方法,孙方法被保护。因此它在子类方法上“大喊”。 将两个实现更改为受保护修复了我的问题。 再次感谢。