base
基本クラスの保護された変数は、またはthis
キーワードを使用して派生クラスでアクセスできると言われています。this
キーワードが現在のクラス(派生クラス)を参照しているため、私は今完全に混乱しています。
public class A
{
protected int i;
}
public class B :A
{
void Display()
{
this.i=10;
// (or)
base.i=10;
}
}
技術的な違いはありますか? まず第一にDisplay()
、保護されたアクセスの定義そのものが言うように、メソッド内で A のオブジェクトを作成し、そのオブジェクトを介して変数 i にアクセスできない理由を考えてみました。どの派生クラスでもアクセスできます。皆さん、いくつかのスレッドを見てきましたが、彼らが言うには、オブジェクトを作成して保護されたメンバーにアクセスすることはできません。私は、これは定義にかなり反していると感じています。
誰かが私の上記の質問の両方を説明してもらえますか