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 }