java silver SE17 第7章-42
解決したいこと
以下の設問についての実行される順番がわかりません。
問題
1. import java.util. Collection;
2.
3. public class A {
4. public void sample(Collection arg) {
5. System.out.printin("A");
6. }
7. }
1. import java.util.Collection;
2. import java.util.List;
3.
4. public class B extends A {
5. public void sample(Collection arg) {
6. System.out.println("B");
7. }
8. public void sample (List arg) {
9. System.out.println("C");
10. }
11.}
1. import java.util.ArrayList;
2. import java.util.List;
3.
4. public class Main {
5. public static void main(String[] args) {
6
7. A a1 = new A();
8. A a2 = new B();
9. B b1 = new B();
10.
11. List<String> list = new ArrayList<>();
12.
13. // do something
14.
15. }
16. }
A.「a1.sample(list)」を実行すると、Aが表示される
B.「a2.sample(list)」を実行すると、Aが表示される
C.「a2.sample(list)」を実行すると、Bが表示される
D.「b1.sample(list)」を実行すると、Bが表示される
E.「b1.sample(list)」を実行すると、Cが表示される
答え A,C,E
疑問点
Mainクラスのmainメソッドから動く。
7〜9行目でインスタンス化している。
11行目でArrayListのlist変数を作成している。
13行目に何を入れるか。
Aの「a1.sample(list)」を入れたとして、別に現状は、引数の(list)に何も渡していないので、動かないが、何かを渡した時に、どう動くかを問われているということですか?
質問が、よく分からないと思いますが、ご教授願います。