Kodrill

Java SE Bronze (1Z0-818-JPN) 試験 / 継承とポリモフィズム ・ 無料問題 4/5

継承とポリモフィズム 問題4[ポリモフィズムを使用するコードの作成]

次のコードをコンパイルした結果として正しいものを選んでください。

Main.java
class Parent {    void hello() {        System.out.println("hello");    }}​class Child extends Parent {    void bye() {        System.out.println("bye");    }}​public class Main {    public static void main(String[] args) {        Parent p = new Child();        p.hello();        p.bye();    }}

選択肢

  • A.15行目でコンパイルエラーになる
  • B.hello と出力された後、実行時エラーになる
  • C.hello と bye が出力される
  • D.17行目でコンパイルエラーになる正解

解説実行して確認済み

呼び出せるメソッドは、オブジェクトの実体ではなく「変数の型」で決まります。p は Parent 型なので、Parent に定義されていない bye() は呼び出せず、17行目がコンパイルエラーです。Child のメソッドを呼ぶには ((Child) p).bye(); のようにキャストします。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「継承とポリモフィズム」の要点を解説記事で読む

「継承とポリモフィズム」の無料問題

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