私有成员变量与共有属性问题
周公 博客专家认证 2007-01-31 05:54:54 有如下类:
--------------------------------------------------------------
GrandFather.cs
--------------------------------------------------------------
public class GrandFather
{
private int age;
private string name;
public GrandFather()
{
}
public int Age
{
get
{
return age;
}
set
{
age=value;
}
}
public string Name
{
get
{
return name;
}
set
{
name=value;
}
}
public override string ToString()
{
return String.Format("爷爷的名字是{0},年龄是{1}",Name,Age);
}
}
-------------------------------------------------------------------
Son.cs
-------------------------------------------------------------------
public class Son:GrandFather
{
public Son()
{
}
public override string ToString()
{
return String.Format("孙子的名字是{0},年龄是{1}",Name,Age);
}
}
------------------------------------------------------------------
MainClass.cs
------------------------------------------------------------------
public class MainClass
{
[STAThread]
public static void Main(string[] args)
{
Son son=new Son();
son.Age=20;
son.Name="孙子";
Console.WriteLine(son.ToString());
Console.ReadLine();
}
}
三个类的源代码如上,现有问题如下:
在MainClass.cs给Son的实例的Name或者Age属性赋值的时候,最后都会导致age或者name值发生变化,而这个值是private的,Son不能访问GrandFather的私有成员,实际上程序不会报错,请给出解释。