私は2つのサブクラスを持つスーパークラスを持っています。サブクラスでメソッドを空にする方法はありますか?
public void doFoo() {
// some 10 lines common to both subclasses.
boolean foo = checkFoo();
/**
* if foo is true, subclass1 should do something. subcass2 does nothing.
*/
// some 10 lines common to both subclasses.
}
私が思いついた解決策:
public void doFoo() {
// some 10 lines common to both subclasses.
boolean foo = checkFoo();
if (foo) {
doSomething();
}
// some 10 lines common to both subclasses.
}
class subclass1 extends superclass {
public void doSomething() {
// some lines of code.
}
}
class subclass2 extends superclass {
public void doSomething() {
// do nothing
}
}
条件fooがtrueの場合、私は他のサブクラスは何もしないはずですしながら、何らかのアクションを取るために、サブクラスのいずれかをしたいです
この共通の問題に対して、より洗練された、より良い、より標準的な解決策がありますか?
派生クラスで明示的に空の関数が必要ですか?ベースに空の関数があり、必要なサブクラスでのみオーバーライドすることができます – UnholySheep