2つのクラスを継承する
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
System.out.println(new C());
}
}
class A {
}
class B {
}
class C extends A, B {
}
- A 何かが出力される
- B 実行時に例外が発生する
- C コンパイルエラーになる
- D 何も出力されない
正解と解説を見る
正解: C
- A: クラスは1つのクラスしか継承できないので、extends A, B の時点でコンパイルエラーです。
- B: コンパイルの時点でエラーになるので、実行時の例外にはなりません。
- C: Java のクラスは単一継承です。extends に2つのクラスは書けないのでコンパイルエラーになります。
- D: コンパイルエラーなので実行できません。
ポイント
- Java のクラスは 1つのクラスしか継承できません (単一継承)。インタフェースは複数実装できます。