Solution (source code)

= Solution

\b[Permitted; returns `"BC"`.] The receiver's <static type> is `C`, but the argument's <static type> is only `B`. Thus `show(C)` is inapplicable; among `show(A)` and `show(B)`, the latter is more specific. Its implementation is `C.show(B)`, whose superclass call returns `"B"` before `"C"` is appended. The argument happens to reference a `C` object, but <method overloading> uses its static type.