我已經閱讀了全部因特網和書籍,protected
成員只能在類內和派生類中訪問。我用下面的代碼關於受保護成員的可訪問性
class Program
{
static void Main(string[] args)
{
}
}
abstract class A
{
protected int n_IntA = 0;
public abstract void AMethod();
}
abstract class B : A
{
int nb;
public B()
{
}
public abstract void GetProtected();
public override void AMethod()
{
}
}
class C : B
{
public override void GetProtected()
{
// Here n_IntA is accessible why ??
}
}
但這裏C級實驗n_IntA
是入店。爲什麼? A
的派生類是B
。因此n_IntA
的可訪問性必須高於B類?
因爲C繼承繼承from B繼承自A. – Belogix
@Belogix這意味着這個成員將可以被所有那些維護這個繼承鏈的類訪問 –
這是正確的,一切都從'System.Object'繼承,不管有多少事情是在頂部。除非你隱藏(使用'new'),否則如果你願意的話,這些物品會起泡。 – Belogix