第1个回答 推荐于2017-05-19
不一定要明确写出的。
因为创建子类对象调用子类的构造方法的时候会先调用父类的构造方法,在子类的构造方法中调用父类的构造方法是用super(),如果没有写super(),则默认调用父类的无参构造方法。
但此时如果父类写了有参的构造方法,则必须在子类的构造器中写明
super(父类构造器参数);本回答被网友采纳
第2个回答 2015-06-15
不一定,如果父类中有多个构造方法的话,不需要明确指出无参构造方法。
解释:继承关系中子类中的方法必须调用父类的构造方法。如果父类中只有一个有参的构造方法,在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,没有写的话,会自动调用的,也就不会报错。
第3个回答 2009-10-20
java中为什么父类必须有无参构造方法才能被子类继承?
这种说法是错误的!
public class Father {
public Father(String str) {
System.out.println(str);
}
}
public class Son extends Father {
public Son() {
super("F");
}
}
第4个回答 2009-10-20
同意以上观点,所以再定义类的时候,最好先加个空的构造方法,