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();
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。