Kodrill

Java SE Bronze (1Z0-818-JPN) 試験 / オブジェクト指向の概念 ・ 無料問題 3/3

オブジェクト指向の概念 問題3[ポリモフィズム]

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

Main.java
class Animal {    void sound() {        System.out.println("...");    }}​class Dog extends Animal {    void sound() {        System.out.println("Bark");    }}​class Cat extends Animal {    void sound() {        System.out.println("Meow");    }}​public class Main {    public static void main(String[] args) {        Animal[] animals = {new Dog(), new Cat(), new Animal()};        for (Animal a : animals) {            a.sound();        }    }}

選択肢

  • A.... ... ...
  • B.Bark Meow
  • C.コンパイルエラー
  • D.Bark Meow ...正解

解説

変数の型はすべて Animal ですが、実行されるのは実際のオブジェクトのクラスでオーバーライドされたメソッドです。Dog は Bark、Cat は Meow、Animal 自身は ... を出力します。呼び出し側のコードを変えずに振る舞いを切り替えられるのがポリモフィズムです。

「オブジェクト指向の概念」の無料問題

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