質問: 900 納得が行かないのは7のところです。 以上よろしくお願いいたします。
回答: Java言語仕様によると、 ・同名のフィールド宣言によってスーパークラスのフィールド宣言は隠蔽される ・参照式の型によって示されるクラス内のフィールドにアクセスする とあります。 要するにフィールドはオーバーライドしないということです。 サブクラスのフィールドにアクセスするためには System.out.println( "7.インスタンス変数 " + ((Sub)sup).instanceField ); とする必要があります。 get/setメソッドを用意してフィールドに直接アクセスできないようにするのがよろしいわけです。 参考URL: