インタフェースを継承するインタフェース
出力はどれか。
public class Main {
public static void main(String[] args) {
Robot r = new Robot();
System.out.println(r.walk() + r.talk());
}
}
interface Walker {
String walk();
}
interface Talker {
String talk();
}
interface Android extends Walker, Talker {
}
class Robot implements Android {
public String walk() { return "W"; }
public String talk() { return "T"; }
}
- A
WT - B コンパイルエラーになる
- C 実行時に例外が発生する
- D
W
正解と解説を見る
正解: A
- A: インタフェースは extends で複数のインタフェースを継承できます。Robot は walk と talk を実装し、WT になります。
- B: インタフェース同士の継承は extends で、複数指定できます。
- C: 例外になる処理はありません。
- D: r.talk() も呼ばれて連結されるので、T も出力されます。
ポイント
- インタフェースは
extendsで複数のインタフェースを継承できます (クラスは1つだけ)。