1,如果子类没有定义构造方法,则调用父类的无参数的构造方法。
2,如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。
3,在创建子类对象时候,如果子类的构造函数没有显式调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的默认无参构造函数。
2,如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。
3,在创建子类对象时候,如果子类的构造函数没有显式调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的默认无参构造函数。
4,在创建子类对象时候,如果父类只有有参构造方法,那么子类必须显式调用此有参构造方法,不然就会出错。
class Person {
private String name;
public Person(String name){
this.name=name;
System.out.println("父类有参");
}
public Person(){
System.out.println("父类无惨");
}
public String getName(){
return name;
}
}
class Student extends Person{
public Student(String name) {
super(name);
System.out.println("子类");
// TODO Auto-generated constructor stub
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s=new Student("abc");
System.out.println(s.getName());
}
结果:父类有参
子类
abc