Java 17 Silver ラボ

学習の画面へ

sealed と abstract の組み合わせ

出力はどれか。

public class Main {
    public static void main(String[] args) {
        Payment p = new Cash(500);
        System.out.println(p.label());
    }
}

abstract sealed class Payment permits Cash, Card {
    abstract String label();
}

final class Cash extends Payment {
    int yen;
    Cash(int yen) { this.yen = yen; }
    String label() { return "現金 " + yen; }
}

final class Card extends Payment {
    String label() { return "カード"; }
}
  1. A 現金 500
  2. B カード
  3. C コンパイルエラーになる
  4. D 実行時に例外が発生する
正解と解説を見る

正解: A

ポイント

「シール・クラスの作成と使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)