Kodrill

Java SE 17 Silver (1Z0-825-JPN) 試験 / 継承とインタフェースの使用 ・ 無料問題 3/3

継承とインタフェースの使用 問題3[スーパークラスとサブクラスの作成と使用]

次のコードを実行したときの出力を選んでください。

Main.java
class Parent {    String label = "P";​    String show() {        return label;    }}​class Child extends Parent {    String label = "C";​    String show() {        return label + super.label + super.show();    }}​public class Main {    public static void main(String[] args) {        Parent p = new Child();        System.out.println(p.label + p.show());    }}

選択肢

  • A.CCPP
  • B.PCPP正解
  • C.PCPC
  • D.CCPC

解説

フィールドはオーバーライドされず、サブクラスの同名フィールドはスーパークラスのフィールドを隠すだけです。どちらのフィールドを使うかは変数の型で決まるので、p.label は Parent の P です。メソッドは実体の Child の show が実行され、label (C) + super.label (P) + super.show() (Parent の show が Parent の label を返すので P) で CPP となり、全体は PCPP です。

「継承とインタフェースの使用」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。