如果不加super(***);
子类的构造函数默认去继承父类的不带任何参数的构造函数,People类中没有定义People()构造函数,所以会出错。
super(***)中加上参数去指定继承父类的哪一个构造函数。

解决方案 »

  1.   

    superyellow(大黄) 的解释应该是对的!
      

  2.   

    在构造一个子类对象的时候,系统首先要构造一个父类,也就是说
    在子类的构造函数中会调用父类的构造函数,也就是说要有super(...)
    并且这个super(...)的参数类型要在父类中存在.
    如果你在子类的构造函数中没有super(...),那么编译系统会自动给你加上
    一个super(),注意,这个super()是没有参数的.那么这个空参数的super()
    在你的父类中不存在,所以编译失败.
    如果你在class People中加入一个空参数的People():
    class People
    {
    ......
    People()
    {
    Num = 0L;
    Name = "NO_NAME";
    Sex = "";
    Ages = 0;
    }
    ......
    }
    这样,哪怕你注释掉: //super(Num,Name,Sex,Ages);
    编译也不会错了.