【初心者】Java質問・相談スレッド95【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0352デフォルトの名無しさん
2006/12/25(月) 22:23:42変数はオーバライドできない。
スーパクラスとサブクラスに同名の変数があった場合、サブクラスのインスタンスには両方の変数が存在する。
そのクラスなら、Kodomo型のオブジェクトには、OyaのdとKodomoのdが両方存在している。
変数の参照は、オーバライドがないので変数の型に従う。つまり、
Oya型の変数 oyaに対して oya.d としたら、Oyaクラスのdを指し、
Kodomo型の変数kodomoを定義して、kodomo.dとしたら、それはKodomoクラスのdを指す。
メソッドの中で変数を参照する場合、自身のクラスで定義された変数を最初に参照する。
だから、Kodomo#print()ではKodomoクラスのdを参照するし、
Oya#print()ではKodomoクラスのdを参照する。
なお、Kodomoクラスのメソッドでも、super.dとすれば、Oyaクラスで定義されたdを参照できる。
■ このスレッドは過去ログ倉庫に格納されています