abstractとinterfaceの禁止事項 — private・static・finalとの組み合わせ制約
abstractメソッドがprivate・static・finalと組み合わせられない理由、interfaceのフィールドがpublic static finalである理由、abstractクラスにコンストラクタがある理由を解説。
abstractメソッドがprivate・static・finalと組み合わせられない理由、interfaceのフィールドがpublic static finalである理由、abstractクラスにコンストラクタがある理由を解説。
this()とsuper()がコンストラクタの1行目限定である理由、なぜ両立できないのか、循環コンストラクタ呼び出しをコンパイラが検出する仕組み、privateコンストラクタの意味を解説。
final変数・finalフィールド・finalメソッド・finalクラスの違いと用途。参照型にfinalをつけたとき「参照は変えられないが中身は変えられる」という最重要の落とし穴を根本から解説。
試験で問われる細かい仕様:catchは子クラスを先に書く理由、finallyのreturnがtryのreturnを上書きする仕組み、switchで使える型の制約の理由、ローカル変数とフィールドの初期化の違いを解説。
オーバーライド時にアクセス修飾子は緩くのみ変更可能な理由、共変戻り値型とは何か、親よりも広いchecked例外をthrowできない理由、staticメソッドのハイディングを解説。