Minaminの日記

趣味を記事にしてる。

C#の「protected」キーワードについての話。

f:id:Minamin1234:20210825003602p:plain

こんにちは。みなみんです。
C#入門シリーズの続きです。

 

今回は「protected」キーワードについて記事にしました。

目次

 

protectedキーワード

protectedキーワードはアクセスレベル

「protected」キーワードはクラス内のメンバ変数やメンバ関数に対して、アクセスレベルを指定するアクセス修飾子です。

 

publicやprivateとの違い

アクセスレベルはインスタンスからのアクセスを制限します。
「public」はインスタンスからアクセスできます。
「private」はインスタンスからのアクセスはできません。
また、「private」を指定したメンバ変数・関数は継承したクラスから継承元のメンバ変数・関数にアクセスする事が出来ません。

そこで登場するのが「protected」修飾子です。
「protected」は、インスタンスからアクセスは出来ないものの、継承されたクラスからのアクセスは出来るようになります。

サンプルをご覧ください。(Gist)

このように、「protected」を指定した変数には、インスタンスからはアクセスできません。
あくまでも、継承したクラスの定義でアクセスする事が可能になるだけです。

 

最後に、アクセスレベル毎のアクセス範囲をまとめてみました。

キーワード 範囲
public インスタンス、継承先からアクセスが可能
private インスタンス、継承先、どちらからもアクセス不可
protected 継承先からのアクセスのみ可能

 

 

この記事に誤りがあるかもしれません。その辺はご了承ください。

本記事で紹介されている方法・手法はあくまでも個人的なものです。