我有一组类:
节点(超类)
|- NodeType1 (类)
|-NodeType2 (Class)
type1和type2有一些共同的字段(例如: NAME)。如果我在超类(Node)中声明了NAME字段,我应该如何访问types类中的那些变量?我怎么才能让这些属性呢?谢谢您抽时间见我
发布于 2009-12-31 21:38:43
如果name字段的access modifier为public或protected,您将能够在派生类中访问它。修饰符public将使其对所有其他类可见,而protected将限制派生类的可见性。
在任何一种情况下,您都可以像访问在当前类中声明的字段一样访问它:
this._name = "New Name";如果你想让它成为一个属性,那么相应地设置它的访问修饰符:
public class Node
{
protected string Name { get; set; }
}发布于 2009-12-31 21:37:57
class Node
{
public string Name { get; set; }
}
class NodeType1 : Node
{
void SomeMethod()
{
string nm = base.Name;
}
}
class NodeType2 : NodeType1
{
void AnotherMethod()
{
string nm = base.Name;
}
}发布于 2009-12-31 21:38:28
您可以按照通常访问字段的方式访问此字段,例如,输入this.fieldName。不要忘记将此字段标记为在继承者中可见的protected,或者标记为在继承者和类外部都可见的public。
class Node
{
protected string protectedName;
}
class NodeType1 : Node
{
public string Name
{
get
{
return protectedName;
}
}
}
class NodeType2 : NodeType1
{
protected void Foo()
{
string bar = Name;
}
}https://stackoverflow.com/questions/1985432
复制相似问题