我有以下类结构:
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_A
和D_CA
将使用基类do()
中的方法A
,但我需要E_CA
类来覆盖它以不同方式实施do()
。
我怎样才能做到这一点?
谢谢!
答案 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。 但我有一个错误,它让我发疯。 问题是基类方法被定义为私有方法,孙方法被保护。因此它在子类方法上“大喊”。 将两个实现更改为受保护修复了我的问题。 再次感谢。