public class Father{
    public string surname;
    public Father(string name){
     this.surname=name;
     Console.Write(name);
}
}
public class Son:Father{
   private int age;
   public Son(int age):base(“关羽”){
  this.age=age;
  Console.Write(age);
}
static void Main()
{
   Son son=new Son(18);
}
}
a) 18
b) 关羽
c) 18 关羽
d) 关羽 18
该题d是对的 但是不理解为什么 是D   ?

解决方案 »

  1.   

    public Son(int age):base(“关羽”)这句,首先是会调用父类,然后再执行子类的构造函数。所以是“关于 18”了
      

  2.   

    先调用了父类(base)的构造函数了,然后再执行son的构造函数
      

  3.   

    这么跟楼主解释吧
    如果父类的构造函数有参数的话,子类来继承父类,那么子类的构造函数也必须要有参数,
    这句话体现出来了,观察一下
    public Son(int age):base(“关羽”){ 
    而代码执行都是最初从构造函数开始的,所以就出现了关羽18