namespace THISORBASE { //参考地址:http://blog.sina.com.cn/s/blog_7300c7d90100rs20.html /*这个时候,派生类和基类的_str被区分开了, * 派生类定义了一个自己_str(注意定义的时候, * 请加上new关键字,虽然不加也可以编译通过, * 但是推荐加上),这样this真正的价值得到了体现。 * this,指向到了派生类对象的自己定义的字段。 * base才是指向的基类的字段。这就是C#.net 里 this和base的真正意义。 */ public class Father { protected string _str = "父亲对象字符串的初始值"; public Father() { this._str = "父亲对象构造函数该变量字符串初始值"; } } public class Son : Father { private new string _str = "子类对象字符串初始值"; public Son() { base._str = "子类对象构造函数修改父类初始化"; } public string PrintStr_this() { return this._str; } public string PrintStr() { return _str; } public string PrintStr_base() { return base._str; } } class Program { static void Main(string[] args) { Son myobj = new Son(); Console.WriteLine(myobj.PrintStr_this ()); Console.WriteLine(myobj .PrintStr() ); Console.WriteLine(myobj .PrintStr_base() ); Console.Read(); } } }
时间: 2024-12-14 09:45:44