abstractとinterfaceの禁止事項 — private・static・finalとの組み合わせ制約
abstractメソッドがprivate・static・finalと組み合わせられない理由、interfaceのフィールドがpublic static finalである理由、abstractクラスにコンストラクタがある理由を解説。
abstractメソッドがprivate・static・finalと組み合わせられない理由、interfaceのフィールドがpublic static finalである理由、abstractクラスにコンストラクタがある理由を解説。
public/private/protected/package-privateの意味と使い分け。なぜprivateにするのか、getterとsetterは何のためにあるのかを根本の思想から解説する。
コンストラクタの存在理由、なぜクラス名と同じ名前か、なぜ戻り値がないのか、デフォルトコンストラクタはなぜ自動生成されるのかを根本から解説。
interfaceとabstract classの違いと使い分け。なぜ多重実装はできて多重継承はできないのか、デフォルトメソッドとは何か、ポリモーフィズムとの関係を根本から解説。
オーバーライド時にアクセス修飾子は緩くのみ変更可能な理由、共変戻り値型とは何か、親よりも広いchecked例外をthrowできない理由、staticメソッドのハイディングを解説。
staticとは何か。インスタンスとクラスの違い、なぜmain()はstaticか、staticメソッドからインスタンス変数にアクセスできない理由を根本から解説。
継承したクラスでなぜsuper()が必要なのか、なぜコンストラクタの1行目でなければならないのか、コンストラクタチェーンの仕組みを根本から解説する。