任何人都可以告诉我“如何在派生类中访问基类变量”?
示例:
Class 1.cs Code
public class baseClass
{
public int intF = 0, intS = 0;
public int addNo()
{
int intReturn = 0;
intReturn = intF + intS;
return intReturn;
}
}
Public class child : baseClass
{
public int add()
{
int intReturn = 0;
intReturn = base.intF * base.intS;
return intReturn;
}
}
Class2.cs代码
class Program
{
static void Main(string[] args)
{
baseClass obj = new baseClass();
obj.intF = 5;
obj.intS = 4;
child obj1 = new child();
Console.WriteLine(Convert.ToString(obj.addNo()));
Console.WriteLine(Convert.ToString(obj1.add()));
Console.ReadLine();
}
}
问题出在子类中,它继承自基类..
intF和intS的值始终显示为0而不是5& 4。
任何人都可以告诉我哪里出错了吗?
此致
G.V.N.Sandeep
答案 0 :(得分:3)
实例字段intF
和intS
属于...实例,而不属于某种类型。当您为obj
实例设置它们时,obj1
实例中的相同字段具有默认值(零)。
您必须以这种方式分配5和4:
child obj1 = new child();
obj1.intF = 5;
obj1.intS = 4;
答案 1 :(得分:1)
您的字段不是static
。您创建的每个实例(对象)都有一个单独的字段。
obj
和obj1
是不同的实例。
顺便说一下,在这种情况下无需使用base
关键字。由于继承,child
类中的两个字段是。仅当当前类覆盖或隐藏基类中的成员时才使用base
。