作用:构造方法用来初始化类的对象,与父类的其他成员不同,它不能被子类所继承(子类可以继承父类所有的public成员方法和变量,但不能继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。
如果没有显示的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅是在没有显示声明构造函数的情况下创建。如果指定了带参数的构造函数,则系统不会创建默认的构造函数。
子类的构造函数内第一行都有默认的super()语句,super()表示子类在初始化时调用父类的空参数的构造函数来完成初始化。
如果父类中只有带参数的构造函数,这时如果子类的构造函数由默认的super()语句,就会出现错误,因为父类中没有空参数的构造函数,必须在子类的构造函数中通过this或者super(参数)指定要访问的父类中的构造函数。