我在设置SuperClass的变量时遇到了一些麻烦
我有以下课程:
在SupperClass Computer
中,我有一个变量string name;
public class Computer
{
protected string name;
}
当我从笔记本电脑类调用方法ChangeName(string yourName)
时,它应该在SuperClass name
中设置变量Computer
,如下所示:
public class Laptop : Computer
{
public void ChangeName(string yourName)
{
name = yourName;
}
}
当我尝试从超类Computer
获取带有属性的名称时,它返回Null
。
我进行了调试以查看发生了什么,并且SubClass Laptop
实际上更改了SuperClass中的名称,但是当方法ChangeName
结束编译时,它又恢复为null
。
导致这种情况的原因是什么?
答案 0 :(得分:1)
我认为你正在设置像
这样的变量 laptop.ChangeName(name);
并试图获得像
这样的名字 computer.name
。
您误解继承。
显然那将是null
。因为computer
和laptop
是两个不同的对象。笔记本电脑是继承的,但并不意味着您可以使用computer
对象访问laptop
对象。
使用laptop.ChangeName(name);
设置值后。打印laptop.name
,您将获得已设置的name
。