• 締切済み

アクセス修飾子

アクセス修飾子 が理解できません。 ヘルプやインターネットで調べると下記のようにかかれています。 public 『アクセスの制限はありません。 』 protected 『アクセスは、コンテナ クラス、またはコンテナ クラスから派生した型に制限されます。 』 internal 『アクセスは現在のプロジェクトに制限されます。 』 protected internal 『アクセスは、現在のプロジェクト、またはコンテナ クラスから派生した型に制限されます。 』 private 『アクセスはコンテナ型に制限されます。』 public 、private は理解できるのですが、protected 、internal が理解できません。 Javaだとprotectedは同じパッケージ内、サブクラスでアクセス可能とかかれています。 .NETも同じでしょうか? 同じパッケージ内?ってどういうこと?となっています。 1つのオブジェクト内に2つのクラスを作成し、 クラスAのメソッドに protectedで作成し 、クラスBでクラスAの宣言をしたらAのprotectedのメソッドは使用できません。どういう場合にprotectedのメソッドは使用できるのでしょうか?

みんなの回答

回答No.1

こんにちは。  protectedは、自分および派生したクラスでのみ使用可能。 あ~C++での書き方忘れた。 class A protected sub ProtectedMethod() end class class ADash inherits A private sub Method1() A.ProtectedMethod ' これはOK end sub end class class B private sub Method2() A.ProtectedMethod ' これはNG end sub end class ただし、Friend宣言をすればアクセス可能。 #と、深みにはめる internalについてはこちらを参照。 http://www.atmarkit.co.jp/fdotnet/onepoint/onepoint02/onepoint02_01.html

参考URL:
http://www.atmarkit.co.jp/fdotnet/onepoint/onepoint02/onepoint02_01.html

関連するQ&A

専門家に質問してみよう