子类构造方法中的super()或者super(args)
子类中的构造方法中的super()是调用父类中的构造方法,其中参数列表必须和父类的某个参数列表匹配。
类与其直接父类之间的构造方法存在约束关系
有以下几条重要原则:
按继承关系,构造方法是从顶向下进行调用的。
如果子类没有构造方法,则它默认调用父类无参的构造方法,如果父类中没有无参数的构造方法,则将产生错误。
如果子类有构造方法,那么创建子类的对象时,先执行父类的构造方法,再执行子类的构造方法。
如果子类有构造方法,但子类的构造方法中没有super关键字,则系统默认执行该构造方法时会产生super()代码,即该构造方法会调用父类无参数的构造方法。
对于父类中包含有参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来引用,而且必须是子类构造函数方法中的第一条语句。
Java语言中规定当一个类中含有一个或多个有参构造方法,系统不提供默认的构造方法(即不含参数的构造方法),所以当父类中定义了多个有参数构造方法时,应考虑写一个无参数的构造方法,以防子类省略super关键字时出现错误。