【发布时间】:2011-11-30 11:16:57
【问题描述】:
我有父类:
class clsTestParent
{
protected int x;
public void Foo()
{
x = 10;
}
}
我的派生类如下:
class clsDerivedTest : clsTestParent
{
x = 10;
Foo();
}
但这不起作用,因为我遇到了两个错误:
类、结构或接口成员声明中的标记“=”无效
方法必须有返回类型
但是当我尝试将它们与派生类中的方法一起使用时,上述语句可以正常工作,如下所示:
class clsDerivedTest : clsTestParent
{
public void myTestMethod()
{
x = 10;
Foo();
}
}
为什么受保护的 var 或方法只能通过派生类方法访问,而不能直接在类中访问。
我什至尝试通过如下创建对象来访问受保护的成员:
clsDerivedTest objDerivedTest = new clsDerivedTest();
objDerivedTest.x = 10;
但保护级别再次出现错误。我将 var 设置为受保护,为什么派生类的对象无法访问它?
我需要清除我的 OOP 基础知识,但卡在这里。
【问题讨论】:
标签: c# .net oop inheritance derived-class