オーバーライドと隠蔽


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


private なメンバは同一クラス内からしかアクセスできないので
オーバーライドできない。
ただし、まったく新たなメンバーとして定義が可能です。
その際、以下のようなオーバーライドの条件の制限を受けない。

  • オーバーライドの条件
1.戻り値型が一致しなければならない
2.throws 節が競合してはならない
3.アクセス修飾子は、同じか、アクセス制限を緩めるものでなければならない
※満たさない場合はコンパイルエラー

  • staticなメソッドの再定義(隠蔽)
スーパークラスの static メソッドをサブクラスの static メソッドで再定義することを隠蔽と言う。
非static <-> static 間の再定義はできない(コンパイルエラー)

※メンバ呼び出し時、オーバーライドは動的束縛が適用されるが、隠蔽は静的束縛が適用される。