构造方法可以调用父类的构造方法,如果没有被调用,编译器将自动地把 super() 作为构造方法地第一条语句。
public ClassName() {
}
等价于
public ClassName() {
super();
}
public ClassName(int i) {
}
等价于
public ClassName(int i) {
super();
}
当构造一个子类对象时,子类构造方法在执行自己的语句前会先调用父类的构造方法,如果父类继承自其他类,那么在执行父类构造语句前会先调用父类的父类的构造方法,一直这样调用下去,直到调用了 Object 的构造方法(Object 类是所有类的父类)。这就是构造方法链。
下面附上一个例子:
public class constructor {
public static void main(String[] args) {
Apple apple = new Apple();
}
}
class Food {
public Food() {
System.out.println("create food");
}
}
class Fruit extends Food {
publi