マンガで分かる Java入門講座

第9章 クラスとオブジェクト2
9-6. アクセス制御2 protectedと修飾子なし

アクセス制御の第2弾として、「protected」と「修飾子なし」の場合について説明します。

● アクセス制御の範囲

 これまでアクセス制御としてpublicとprivateを使ってきました。しかしJavaには、この2つ以外のアクセス制御の修飾子があります。

 「protected」は、同一クラスに加えて、同一パッケージとサブクラスからアクセス可能な修飾子です。

 修飾子「なし」の場合は、同一クラスと同一パッケージはアクセス可能ですが、サブクラスからはアクセスできません。

 このアクセス制御を、以下に表にまとめます。

表)アクセスが可能か?
修飾子同一クラス同一パッケージサブクラスその他
public
protected×
なし××
private×××

● オーバーライドしたメソッドの可視性は下げられない

 クラスを継承して、メソッドをオーバーライドした際は、その可視性(アクセス制御の範囲)を下げることはできません。

 これは、スーパークラスのメソッドが、オーバーライドされることによって隠蔽されるからです。

図)オーバーライドしたメソッドの可視性は下げられない
                  ┏SubClass━━━━━━━━━━━┓
 Super               ┃ Super            ┃
┏Class ━┓            ┃┏Class ━┓         ┃
┃    ┃public  ─────→ ┃┃    ┃public  private ┃
┃    ┠─○b()  可視性が   ┃┃    ┠─×b()   b()●─┨
┗━━━━┛     下がると   ┃┗━━━━┛         ┃
           同じ物として ┗━━━━━━━━━━━━━━━┛
           扱えない

 対してフィールドは可視性を下げることができます。フィールドはたとえ可視性を下げたとしても、スーパークラスにキャストすることによって、スーパークラスのフィールドにアクセスが可能です。


この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/06/04  更新:2015/08/09  [Permalink]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×