public class Base extends fu{
public String color;
public Base(String color,String name, double size) {
super(name,size);//调用父类的构造器
this.color=color;
}
public static void main(String[] args) {
Base s=new Base("bllue","hulang",12);
System.out.println(s.size+"--"+s.name);
}
}
class fu{
public double size;
public String name;
public fu(String name){
this.name=name;
}
public fu(String name,double size) {
this(name);//重载构造器
this.size=size;
}
}
使用super调用的是父类的构造器,而且必须出现在子类构造器的第一行。
使用this调用的是同一个类中的重载的构造器。
this和super不会同时出现。
子类构造器总会调用父类构造器一次:
1、使用super调用
2. 调用无参数父类构造器
创建任何对象总是从该类所在继承书最顶层类的构造器开始执行,然后一次向下执行,最后才执行本类的构造器。
如果某个父类通过this调用了同类中重载的构造器,就会依次执行父类的多个构造器。