public class A { public String s() { return "A"; } }
public class B extends A { public String s() { return "B"; } }
public class C extends A { public String s() { return "C"; } }
A[] arr = { new A(), new B(), new C() };
for (A x : arr) System.out.print(x.s());What is printed?
- A
BCA
- B
Compile-time error
- C
AAA
- Dcheck_circle
ABC
Explanation
Each element invokes its actual runtime type's method via dynamic dispatch.