public class A {
public String name() { return "A"; }
public String label() { return "[" + name() + "]"; }
}
public class B extends A {
public String name() { return "B"; }
}
System.out.println(new B().label());What is printed?
- Acheck_circle
[B]
- B
[A]
- C
[]
- D
Compile-time error
Explanation
<code>label()</code> is inherited from A but calls <code>name()</code> on <code>this</code>. Since this is a B, dynamic dispatch picks B.name().