base 访问基类的变量,基类的对象访问基类的变量怎么不一样?

tiandaoliwen1 2012-10-06 10:01:27
class A
{
public int name = 12;

}


class B : A
{

public void print()
{
name=13;
Console.WriteLine(name);
Console.WriteLine(base.name);
}
}


static void Main(string[] args)
{
A a = new A();
B b = new B();
//Console.WriteLine(a.name);
//Console.WriteLine(b.name);

b.print();
Console.Write(a.name);
Console.ReadKey();
}
最后打印出来的结果明显就是a.name为12,而base.name为13.这是为什么!
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2012-10-06
  • 打赏
  • 举报
回复
base.xxx和this.xxx一样,都是每个对象拥有一个的。

要是成员变量在对象之间共享,那还要面向对象干嘛呢。
devmiao 2012-10-06
  • 打赏
  • 举报
回复
没错啊。
有a、b两个对象,调用了b.print,修改了b的name,所以都是13,a对象没有修改,是12。

输出13 13 12,什么问题呢?
真相重于对错 2012-10-06
  • 打赏
  • 举报
回复
你要了解什么是类,什么是类的实例
a.name 和 通过 b.print函数里面的base.name 不是一个东西
也就是说a 和b.print里面的base不是同一个东西

109,883

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧