インタフェースを new する
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
Runner r = new Runner();
}
}
interface Runner {
void run();
}
- A 何も出力されずに終わる
- B 実行時に例外が発生する
- C コンパイルエラーになる
- D
nullと出力される
正解と解説を見る
正解: C
- A: インタフェースは new できないので、コンパイルエラーです。
- B: コンパイルの時点でエラーになるので、実行時の例外にはなりません。
- C: インタフェースからは直接インスタンスを作れないので、new Runner() がコンパイルエラーになります。
- D: コンパイルエラーなので実行できません。
ポイント
- インタフェースはインスタンスを作れません。実装クラスを作って new します。