View Code
1 namespace override_class 2 { 3 class Fa_class 4 { 5 public int[] T = new int[10]; 6 //父类构造函数 7 public Fa_class() 8 { 9 for (int i = 0; i < 10; i++) 10 { 11 T[i] = 0; 12 } 13 } 14 15 public Fa_class(int a) 16 { 17 for (int i = 0; i < 10; i++) 18 { 19 T[i] = a; 20 } 21 } 22 public void mtd_1() 23 { 24 Console.WriteLine("mtd_1 of the faclass"); 25 } 26 public int this[int idx] 27 { 28 get 29 { 30 return T[idx]; 31 } 32 set 33 { 34 T[idx] = value; 35 } 36 } 37 public int fa_fld 38 { 39 get 40 { 41 return fa_fld; 42 } 43 set 44 { 45 fa_fld = value; 46 } 47 } 48 } 49 class son_class:Fa_class 50 { 51 public son_class(int a):base(a)//子类构造函数调用父类构造函数 52 { 53 Console.WriteLine("son done."); 54 } 55 } 56 }
RT
用和子类继承父类的方式类似的“:”来调用(继承)父类的构造函数
如果基类中定义了带参数的一个或者多个构造函数,则派生类中也必须定义至少一个构造函数,且派生类中的构造函数都必须通过base()函数“调用”基类中的某一个构造函数。
//必须重载基类的构造函数
传递给基类构造函数的“实参列表”通常包含在派生类构造函数的“形参列表”中