継承とポリモーフィズム まとめクイズ

クイズ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 classinterface の違いとして 最も正しい ものはどれでしょうか。

クイズ4

次のうち、equals正しくオーバーライド したコードはどれでしょうか。

クイズ5

次のコードで super(name)省略 するとどうなるでしょうか。super のコンストラクタ呼び出しに関する Java の仕様を踏まえて 1 つ選んでください。

Java

class Animal { Animal(String name) { ... } // 引数なしコンストラクタは無い } class Dog extends Animal { Dog(String name) { // super(name); を省略 } }

未回答の問題は、不正解として正解と解説のみ表示します

ログインが必要です

クイズに回答するにはログインしてください。