public class animal
{
protected static string _name="animal"; public static void ShowName()
{
Console.WriteLine("动物名称:" + _name);
}
} public class horse : animal
{ public void ShowName()
{
Console.WriteLine("动物名称为" + _name);
}
public void ChangeName()
{
_name = "horse";
}
} public class Demo
{
public static void Main(string[] args)
{
horse hr = new horse();
hr.ChangeName();
animal.ShowName();
}
}
当我在基类定义了一个静态字段_name,当horse继承了animal类,我用horse类改变该继承的字段,然后父类为什么也跟着改变呢?
就是当我调用了hr.ChangeName()后,父类的_name的值也跟着改变了
如果我定义的不是静态的字段_name,就没有这种变化,为什么???
//类
using System;
using System.Collections.Generic;
using System.Text;public class animal
{
public string _name = "animal"; public void ShowName()
{
Console.WriteLine("动物名称:" + _name);
}
}public class horse : animal
{ public new void ShowName()
{
Console.WriteLine("动物名称为" + _name);
}
public void ChangeName()
{
_name = "horse";
}
}
//FORM
private void Form1_Load(object sender, EventArgs e)
{
horse hr = new horse();
hr.ChangeName();
Console.WriteLine(hr._name);
}结果不是都改变了嘛~~~如果是静态的字段_name当然会改变了,