第二の親のアクセス部材(継承)
-
13-09-2019 - |
質問
ここに私の現在のレイアウトである:(質問はコメントです)。
class A
{
int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Doesn't work
base.base.foo // Doesn't work, of course
}
}
あなたが見ることができるように、私はそれにアクセスできる方法C.でA
を使用してbase
のメンバーにアクセスすることはできませんか?ありがとう:)
解決
あなたはfooが保護させる場合は、
class A
{
protected int foo;
}
単純なベースが行います。
void bar()
{
//I want to access foo
base.foo; // will work now
// base.base.foo // Doesn't work, of course
}
しかし、fooの周り(保護)プロパティを構築する方が良いでしょう。
class A
{
private int _foo;
protected int Foo
{
get { return _foo; }
set { _foo = value; }
}
}
他のヒント
Aでのフィールドはプライベート宣言されています。それはそれにアクセスするための派生クラスのために保護する必要があります。
のint fooの前に公共入れ;
class A
{
public int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Now you can see it
}
}
あなたはすべてのメンバーがプライベートですが、特に指定しない限り、デフォルトでます。
所属していません StackOverflow