継承とポリモーフィズム まとめクイズ
クイズ1
次の 4 つの説明のうち、最も正しい ものを 1 つ選んでください。継承とポリモーフィズム 章の 7 本柱 (extends / super / @Override / abstract / interface / default / instanceof) と、ポリモーフィズムの使い分けを問う、コース最終問題です。
Java
// 参考: 想定される使われ方の例
abstract class Animal {
protected final String name;
protected Animal(String name) { this.name = name; }
public abstract String sound();
}
class Dog extends Animal {
public Dog(String name) { super(name); }
@Override public String sound() { return "Wan"; }
}
interface Trainable {
default String trick() { return "sit"; }
}
class ServiceDog extends Dog implements Trainable {
public ServiceDog(String name) { super(name); }
}
Animal a = new ServiceDog("Pochi");
if (a instanceof Trainable t) System.out.println(t.trick());クイズ2
次のコードを実行すると何が出力されるでしょうか。ポリモーフィズム (動的ディスパッチ) の挙動に注意して 1 つ選んでください。
Java
class Animal { public String sound() { return "..."; } }
class Dog extends Animal { @Override public String sound() { return "Wan"; } }
Animal a = new Dog();
System.out.println(a.sound());クイズ3
次のうち、abstract class と interface の違いとして 最も正しい ものはどれでしょうか。
クイズ4
次のうち、equals を 正しくオーバーライド したコードはどれでしょうか。
クイズ5
次のコードで super(name) を 省略 するとどうなるでしょうか。super のコンストラクタ呼び出しに関する Java の仕様を踏まえて 1 つ選んでください。
Java
class Animal {
Animal(String name) { ... } // 引数なしコンストラクタは無い
}
class Dog extends Animal {
Dog(String name) {
// super(name); を省略
}
}未回答の問題は、不正解として正解と解説のみ表示します
ログインが必要です
クイズに回答するにはログインしてください。