1.无参构造方法
public class Person {
private String name;
public Person(){
Log.i("Person constructor...");
}
}
public class Man extends Person{
public Man(){
Log.i("Man constructor...");
}
public static void main(String[] args){
new Man();
}
}
sela->Person constructor...
sela->Man constructor...
- 总结
从父类到子类一级一级完成构建,子类不用手动调用super()
2.有参构造方法
public class Person {
private String name;
public Person(String name){
this.name = name;
}
}
public class Man extends Person{
public Man(){
Log.i("Man constructor...");
}
public static void main(String[] args){
new Man();
}
}
编译报错,提示Implicit super constructor Person() is undefined. Must
explicitly invoke another constructor
- 总结
编译器会帮我们自动创建一个无参的构造方法,但是如果像我们这个父类中,添加一个有参数的构造方法,编译器会以为我们无需他的帮忙自动创建,但是子类里是需要的,所以会报错,解决方法为
public class Man extends Person{
public Man(){
super("");//添加这行
Log.i("Man constructor...");
}
public static void main(String[] args){
new Man();
}
}