質問: new SubClass(); sub.test(); } } このコードでは、testメソッドはスーパークラスが所持しており、 SubClassクラスではsub変数をインスタンス化していると考えています。 sub.test()ではsub変数に代入されているnum=20で処理されると思いましたが、 実行するとスーパークラスのnum=10が表示されます。 ここで2つ疑問が発生しました。 1SubClass型でSubClassクラスをインスタンス化してsub変数に代入しているはずですが、 スーパークラスのprivateフィールドが代入されているのは何故でしょうか。 2privateフィールドはサブクラスからアクセスできるのでしょうか。 ご教授よろしくお願いします。
回答: 2 できない 1 ↑ので子クラスで別途使うため(どのような設計か分からないので「おそらく」)。オーバーライドとかで調べてください > > 実行するとスーパークラスのnum=10が表示されます。 > > > 親クラスのメソッド実行してれば、親クラスのフィールド参照しますよね。