Overriding Methods

AP Computer Science A· difficulty 4/5

P +static s():String +i():String Q extends P +static s():String +i():String

Consider:

<code class="language-java">class P { public static String s() { return "Ps"; } public String i() { return "Pi"; } } class Q extends P { public static String s() { return "Qs"; } public String i() { return "Qi"; } } P x = new Q(); System.out.print(x.s() + " " + x.i()); </code></pre> What is printed?

  • A

    Qs Pi

  • B

    Ps Qi

    check_circle
  • C

    Ps Pi

  • D

    Qs Qi

Explanation

Static methods are resolved by the COMPILE-TIME type (P), so <code>x.s()</code> returns "Ps". Instance methods use the RUNTIME type (Q), so <code>x.i()</code> returns "Qi".

Want 10 more like this — adaptive to your weak spots?

Related questions