标题: 父类与子类构造器注意点 [打印本页] 作者: DH柯 时间: 2015-1-9 23:49 标题: 父类与子类构造器注意点 父类如果为没有带参数的构造器,子类必须显示带其他超类构造器:(求理睬)代码:
Base(){
System.out.println("Base with no arg");
}
}
class Test extends Base{
Test(int v){
}
public static void main(String[] args) {
Test a = new Test(3);
}
}
//输出
Base with no arg
//这里子类里面没有显式调用父类的构造函数,但是父类的构造还是被调用了,说明Java加载类的时候,会加载父类的无参数的构造函数
class Base{
Base(int val){
System.out.println("Base int");
}
}
class Test extends Base{
Test(int v){
//如果这里不调用super(v) 是无法通过编译的
}
public static void main(String[] args) {
Test a = new Test(3);
}
} 作者: jojo 时间: 2015-1-10 00:50
所以,通常来说,当你自定义了构造函数后,一般要再写一个无参数的构造函数。后期有很多框架在使用时,都是通过反射来调用类的无参数构造函数的,如果没有,会出现问题!!!作者: DH柯 时间: 2015-1-10 08:11
谢谢提醒哦!!!!!!!!!!!!!!!!!!!!!!!!!!!!