【发布时间】:2012-06-06 18:25:11
【问题描述】:
我有这个程序:
public class A
{
public A(){
System.out.println("I am in A");
}
public static void main(String args[]){
B a = new B("Test");
}
}
class B extends A
{
public B(){
System.out.println("I am in B");
}
public B(String s){
this();
super();
System.out.println("I am in B as " + s);
}
}
现在为什么我不能调用B 的this 构造函数来调用默认构造函数?这给了我编译时错误。
【问题讨论】:
-
通常 super() 调用应该给你一个错误。构造函数必须是构造函数中的第一条语句;)
-
只有在超类没有默认构造函数或没有参数列表的构造函数时,super()才会报错
标签: java constructor default-constructor