【初心者】Java質問・相談スレッド112【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0502デフォルトの名無しさん
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); // => 子
要するに、パブリックなインスタンス変数は、子によってオーバライドできな
いのです。メソッドと違って。
どうしてこれは、こういう言語仕様になっているのでしょうか?
メソッドのようにオーバライドできてもいいと私は思うのですが。
■ このスレッドは過去ログ倉庫に格納されています