두 번째 부모의 액세스 멤버 (상속)
-
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
}
}
보시다시피, 나는 회원에게 액세스 할 수 없습니다. A
사용하여 base
C.에서 어떻게 액세스 할 수 있습니까? 감사 :)
해결책
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