オーバライドとオーバーロード

⑴オーバーライド

サブクラスでスーパクラスに定義されたメソッドを「再定義」すること。
スーパークラスの定義に加えて、サブクラスに新しい定義を追加(再定義)すること。
×スーパクラスの定義を上書き(overwrite)すること。

ルールは以下の3つのみ
・メソッドのシグニチャ(名、型、数、順番)は同じでなければいけない。
・戻り値の型は同じか、そのサブクラス型でなければいけない。
・アクセス修飾子は同じか、より緩いものでなければいけない。

※上書きなのではなく、JVMインスタンス生成時に作成する「メソッド・ディスパッチ・テーブル」という仕組みによって、サブクラスでオーバーライドしたメソッドを優先してるってだけなのよ。

 

オーバーロード

執筆中