オーバーライドと隠蔽


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

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

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

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

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年09月22日 16:30