继承中Base的使用

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             b sb = new b();
 6             sb.ChildSpeak();
 7             b ss = new b("我是子类的参数");
 8             Console.ReadKey();
 9         }
10     }
11 
12     class a
13     {
14         public string one { get; set; }
15 
16         public a()
17         {
18             Console.WriteLine("我是第一个被调用的!");
19         }
20         public a(string param)
21         {
22             Console.WriteLine("我是父类的构造方法,我接收子类传过来的参数为-----" + param);
23         }
24 
25         public void ParentSpeak()
26         {
27             Console.WriteLine("我是父类");
28         }
29 
30     }
31     class b : a//当调用子类时,先会调用父类的无参构造方法
32     {
33         public b()//默认接上" :base()"
34         {
35             Console.WriteLine("我是第二个被调用的!");
36         }
37         public b(string message)
38             : base(message)//base:表示调用父类含参的构造方法
39         {
40             Console.WriteLine("我是子类的带参构造方法,我接收的参数为----" + message);
41         }
42 
43         public void ChildSpeak()
44         {
45             var s = base.one;//可以通过base。出来父类的除私有的属性和方法
46 
47             Console.WriteLine("我是子类!");
48         }
49     }
  • 当实例化子类时(“b sb=new b();”),首先会先去调用父类的无参的构造方法,然后在调用子类的无参的构造方法;
  • 当实例化子类时(“b ss=new b(“我是子类的参数”);”),首先会先去调用父类的有参的构造方法,然后在调用子类的有参的构造方法;
posted @ 2013-10-28 15:00  豆豆0829  阅读(441)  评论(0编辑  收藏  举报