继承中的构造方法
1.子类构造的过程必须调用其基类的构造方法。(因为一个子类对象里面还有个父类对象啊)所以子类对象在构造的过程中应该首先调用父类的构造方法。
2.子类可以在自己的构造方法中使用 super(argument list) 调用基类的构造方法。(argument list是数列表的意思)
①使用 this(argument list) 也可以调用本类 另外的一个 构造方法。
②如果调用super,必须写在子类构造方法的第一行。
3.如果子类的构造方法中没有显示地调用基类的构造方法(即没写super),则系统默认调用基类无参数的构造方法。(是要有自己声明的一个参数为空的基类构造方法)
如果子类构造方法中既没有显示地调用基类的构造方法,而基类中又没有无参的构造方法,则编译出错。
注意:
- 如果一个类你没有为他专门写一个构造方法,那么Java compiler会自动帮你添加一个无参的构造方法,所以我们即使没有写构造方法,在写完一个类之后仍然可以用new关键字来创建对象,这用的就是自动添加的无参构造方法。
- 但一旦你写了一个或更多的构造方法,编译器就不会帮你自动添加那个无参的构造方法。
所以,父类如果没有写任何的构造方法,上面情况3也不会报错,因为有个自动添加的无参构造方法。
但如果父类中你只写了一个有参的构造方法,那么情况3就会报错。因为已经没有默认的无参构造方法调用,而你在基类中又没有写另外的无参构造方法。