SubClass sc1 = new SubClass();调用的是SuperClass(int n)这个构造方法;确实你这句话没有错。
我把 SuperClass()注视掉;你确定就只把这个默认构造方法注释掉就不能运行了,我刚刚试了一下你的代码,在把默认构造方法注释后是能运行的。因为你调用的是父类的有参构造,不会调用无参构造,所以程序不会报错。是不是你哪里改了代码。或者是描述没有说清楚。
我把 SuperClass()注视掉;你确定就只把这个默认构造方法注释掉就不能运行了,我刚刚试了一下你的代码,在把默认构造方法注释后是能运行的。因为你调用的是父类的有参构造,不会调用无参构造,所以程序不会报错。是不是你哪里改了代码。或者是描述没有说清楚。
SubClass sc1 = TestSuperSub .new SubClass();
这样就可以了,希望可以帮到你
//super();
System.out.println("SubClass(" + n + ")");
this.n = n;
}
这里会先调用父类的默认无参构造,你的父类还有默认的无参构造吗????