我有一个接口A,为此我必须提供一些不同的 实现。但是,这些实现共享一些帮助器方法,所以我将这些方法移到了抽象基类中。实现与抽象类的接口时声明什么(不)?
Interface A {
void doX();
}
abstract Class B implements A {
protected void commonY() {
// ...
}
@Override
public abstract void doX();
}
Class C extends B {
@Override
public void doX() {
// ...
}
}
Class D extends B {
@Override
public void doX() {
// ...
}
}
我的代码工作正常,但我有几个问题:
我应该声明抽象方法DOX()B类?为什么不)?
我是否还应该在类C和D上显式声明“implements A”?为什么不)?
此解决方案的好处是,当实现Z的类X实现时,需要方法commonY的功能,它可以专用类B. – 2008-12-09 11:59:03