import java.util.*;
public class A { public String s() { return "A"; } }
public class B extends A { public String s() { return "B"; } }
List<A> list = new ArrayList<>();
list.add(new A());
list.add(new B());
for (A x : list) System.out.print(x.s());What is printed?
- A
Compile-time error
- B
BB
- C
AA
- Dcheck_circle
AB
Explanation
Dynamic dispatch picks each object's actual class method.