オブジェクト指向プログラミングについて質問です。サブクラスで異なる値を持つ属性がある場合。スーパークラスで抽象アクセサーを作成し、サブクラスでオーバーライドする必要があります。または、基本クラスで保護されたインスタンス変数を作成し、サブクラスのコンストラクターでデフォルト値を割り当てますか?
コード例のコードを見てみましょう。
選択肢 1:
class BaseClass {
public abstract int GetFoo();
}
class SubClass {
public int GetFoo() {
return -1;
}
}
選択肢 2:
class BaseClass {
protected int _foo;
public int GetFoo() {
return _foo;
}
}
class SubClass {
public SubClass() {
_foo = -1;
}
}
または任意のアイデア?