base关键字

 

微软MSDN的解释如下:

base 关键字用于从派生类中访问基类的成员:

  • 调用基类上已被其他方法重写的方法。

  • 指定创建派生类实例时应调用的基类构造函数。

基类访问只能在构造函数、实例方法或实例属性访问器中进行。

从静态方法中使用 base 关键字是错误的。

下面是做的实验

 

 1 public class Active
 2     {
 3         decimal value { get; set; }
 4         public string name { get; set; }
 5         public Active()
 6         {
 7             name = "active构造函数赋值";
 8             Console.WriteLine("父类构造函数");
 9             Console.WriteLine(name+"active");
10         }
11         public Active(int id)
12         {
13             name = "带参数的构造函数";
14             Console.WriteLine(name);
15         }
16         public virtual void testActive()
17         {
18             Console.WriteLine(name+"父类");
19         }
20     }
 1  public class snapped : Active
 2     {
 3         
 4         public snapped()
 5         {
 6             Console.WriteLine(base.name+"子类构造函数");
 7         }
 8 
 9         public void testsnappend()
10         {
11             Console.WriteLine(this.name);
12             base.name = "父类的属性";
13             Console.WriteLine("在这里修改name的值");
14             base.testActive();
15             this.testActive();
16         }
17         public override void testActive()
18         {
19             Console.WriteLine(name+"子类");
20         }
21     }

最后在入口

1         static void Main(string[] args)
2         {
3             snapped sp = new snapped();
4             sp.testsnappend();
5             Console.WriteLine("=======================");
6             sp.testActive();
7             Console.ReadKey();
8         }    

最后输出的结果是.

父类构造函数
active构造函数赋值active
active构造函数赋值子类构造函数
active构造函数赋值
在这里修改name的值
父类的属性父类
父类的属性子类
=======================
父类的属性子类

 

如果在子类构造函数修改一下

1         public snapped():base(1)
2         {
3             Console.WriteLine(base.name + "子类构造函数");
4         }        

执行的结果会变成:

带参数的构造函数
带参数的构造函数子类构造函数
带参数的构造函数
在这里修改name的值
父类的属性父类
父类的属性子类
=======================
父类的属性子类

 

转载于:https://www.cnblogs.com/Blogtom/p/5490058.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值