1

私は.NETで作業していますが、これは他の言語にも及ぶと思います...

したがって、子がクラスを継承すると、親のメンバー変数とプロパティが取得されます。プライベート変数名「mFirstName」があり、オブジェクトから FirstName の値を取得する FirstName という ReadOnly プロパティがあるとします。

この親を継承する別のクラスを作成し、子クラスで FirstName プロパティを使用して子の変数の値を取得できます...しかし、その変数の名前は何ですか?

別の言い方をすれば、親クラスに mFirstName という名前のプライベート変数があります。子クラスで同等の変数を何と呼びますか?

4

2 に答える 2

0

子クラスは、のようなプライベート変数を含むすべてのフィールドを継承しますmFirstNameFirstName親クラスがプライベート変数を読み書きするプロパティを実装している場合、mFirstNameそれをオーバーライドしない限り、子クラスも同様です。 mFirstNameただし、子クラスには表示されませんが、FirstNameプロパティは表示されます。子クラスは、親クラスの実装を使用するFirstNameか、許可されている場合は、オーバーライドを使用して他の方法で実装する必要があります。

于 2013-04-08T03:05:52.430 に答える
0

これは名前の問題ではなく、アクセシビリティの問題です。

プライベート フィールドは引き続き派生クラスのメンバー状態です。派生クラスが基本クラスのネストされたクラスでない限り、名前で直接アクセスできないのはたまたまメンバー状態です。

public class Foo
{
    private int bar;

    public virtual void Do()
    {
        this.bar = 1;
    }

    private class DerivedFoo : Foo
    {
        public override void Do()
        {
            this.bar = 2;
        }
    }
}

上記の例では、フィールドはプライベートですが、派生クラスから引き続きアクセスできます。を継承する外部Fooクラスには、同じ機能はありません。

したがって、フィールドの名前は同じで、フィールドは引き続き派生クラスの状態です。アクセシビリティは、継承者に完全に依存します。

于 2013-04-08T03:17:26.837 に答える