0

谁能告诉我“如何访问派生类中的基类变量”?

例子:

1.cs 类代码

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。

谁能让我知道我哪里出错了?

问候,

GVNS桑迪普

4

2 回答 2

3

实例字段intFintS属于...实例,而不是类型。例如,当您设置它们时,obj实例中的相同字段obj1具有它们的默认值(零)。

您必须以这种方式分配 5 和 4:

child obj1 = new child();
obj1.intF = 5;
obj1.intS = 4;
于 2013-05-30T10:41:13.433 回答
1

你的领域不是static。您创建的每个实例(对象)都有一个单独的字段。

obj并且obj1是不同的实例。

顺便说一句,在这种情况下不需要使用base关键字。由于继承,这两个字段在类中。childbase在当前类覆盖或隐藏基类的成员时使用。

于 2013-05-30T10:42:28.043 回答