08/08/11 16:26:09
>>15
んっと、提示されたAとBのgetメソッドの違いは、
「振る舞いの違い(=継承で書き換えるべきもの)」
ではないということを言いたかった。
プロパティとして持たせてあげれば、Bのgetメソッドはいらない。
そのプロパティを設定するのは、静的ならコンストラクタ内になる。
まあ、一番キミが聞きたいとこからはずれてるので、気にしなくていいが、
class A {
private String ob="obj a"; //デフォルト
public String getObjectName(){ //ゲッタ
return ob;
}
protected void setObjectName(String name){//セッタ
this.ob=name;
} }
class B extend A{
B(){
super();
setObjectName("obj b"); //静的ならここ書く。
} }
今回はどうせBを作る需要があるということなので、こんな感じ。
ただgetObjectName()の戻りを変えたいだけなら、setObjectNameを
公開するか、コンストラクタ引数にする。それだけのためのクラスは不要。