public class BaseClass
{
protected void BaseMethod()
{
}
}
public class DerivedClass : BaseClass
{
public void Test()
{
DerivedClass d1 = new DerivedClass();
d1.BaseMethod(); // No error here.
BaseClass b1 = new DerivedClass();
b1.BaseMethod(); // I get compile-time error for this. Why ?
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码(在VS2005上编译),我得到以下编译时错误 -
错误1无法通过类型为"BaseClass"的限定符访问受保护的成员'BaseClass.BaseMethod()'; 限定符必须是'DerivedClass'类型(或从中派生)
有人可以解释这种行为吗?这里有些根本错误!