0

我在设置 SuperClass 的变量时遇到了一些问题

我有以下课程:

    • 计算机(超类)
    • 笔记本电脑(子类)
    • 桌面(子类)
  • 在 SupperClassComputer我有一个变量string name;

    public class Computer
        {
            protected string name;
        }
    

    当我从笔记本电脑类调用该方法ChangeName(string yourName)时,它应该name在 SuperClass 中设置变量Computer,如下所示:

    public class Laptop : Computer
    {
        public void ChangeName(string yourName)
        {
            name = yourName;
        }
    }
    

    当我尝试从超类中获取带有属性的名称时Computer,它会返回Null。我调试看看发生了什么,SubClassLaptop实际上更改了SuperClass中的名称,但是当方法ChangeName结束编译时,它又恢复为null.

    这可能是什么原因造成的?

    4

    1 回答 1

    1

    我认为您正在设置变量,例如

    laptop.ChangeName(name);

    并试图得到这样的名字

    computer.name.

    你误解了继承

    显然会这样null。因为computerlaptop是两个不同的对象。笔记本电脑是继承的,但这并不意味着您可以computer使用对象访问laptop对象。

    使用 设置值后laptop.ChangeName(name);。打印laptop.name,你会得到name你设置的。

    于 2013-08-28T15:21:36.007 回答