私はインターフェース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() {
// ...
}
}
私のコードは期待どおりに機能しますが、いくつか質問があります。
クラスBで抽象メソッドdoX()を宣言する必要がありますか?なぜだめですか)?
クラスCとDで「実装A」も明示的に宣言する必要がありますか?なぜだめですか)?