前提・実現したいこと
記載の2つのコードを実行したときの動き方・構造についてご教授頂ければ幸いです。
発生している問題・エラーメッセージ
この2つのコードを実行した場合、コンソールには「Parent」が表示されます。
私の予測では「Child」と表示されるものと考えていました。
childインスタンスの中にはないout()が呼び出されているのが不思議です。
以下私が考えるchildインスタンスの構造です。
privateなメソッドは継承されていないので親インスタンス部にout()はありません。
親インスタンス部 | 子インスタンス部 |
---|---|
+parent() | -out() |
以下予測の動き方です。
0. Childクラスの10行目でChildインスタンスの中にある継承された親インスタンス部のparent()が呼び出される。
0. Parentクラスのout()はprivateなので、childインスタンスには継承されていないため、親インスタンス部にout()はない。子インスタンス部のout()が呼び出される。
0. Childが表示される。
該当のソースコード
Java
1package sample; 2 3public class Parent { 4 private void out() { 5 System.out.println("Parent"); 6 } 7 8 public void parent() { 9 out(); 10 } 11} 12
Java
1package sample; 2 3public class Child extends Parent { 4 private void out() { 5 System.out.println("Child"); 6 } 7 8 public static void main(String[] args) { 9 Child child = new Child(); 10 child.parent(); 11 } 12}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/29 12:02