- 502 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:50:00 ]
- すみませんが、質問です。
クラス継承についてですが、親クラス、子クラスに共通して、同名のパブリッ クなインスタンス変数があり、その初期値は親と子で違うとします。 子クラスのインスタンスを作り、それを親クラスの型の変数に代入した場合、 その変数のインスタンス変数には、親の価が入っています。 public class Parent { public String hoge = "親"; } public class Child extends Parent { public String hoge = "子"; } Parent x = new Child(); System.out.println(x.hoge); // => 親 System.out.println((new Child()).hoge); // => 子 要するに、パブリックなインスタンス変数は、子によってオーバライドできな いのです。メソッドと違って。 どうしてこれは、こういう言語仕様になっているのでしょうか? メソッドのようにオーバライドできてもいいと私は思うのですが。
|

|