abstract class Shape {
abstract double area();
}
public class Main {
public static void main(String[] args) {
Shape s = new Shape();
System.out.println(s.area());
}
}
選択肢
- あなたの回答
- 正解
正解
B. コンパイルエラーになる
詳細解説
abstract クラスは直接 new することができません。コンパイラがエラーとして検出します。
なぜ他の選択肢が違うのか
- abstract メソッドは実装がないため 0.0 が返ることはありません。
- コンパイル段階でエラーになるため実行時エラーにはなりません。
- abstract クラスのインスタンス化はコンパイルエラーです。
罠ポイント
抽象クラスはサブクラスで全抽象メソッドを実装して初めてインスタンス化できます。