class SuperClass
{
private int i; /*SuperClass() {
System.out.println("SuperClass");
}*/ SuperClass(int i) {
this.i = i;
System.out.println("SuperClass ("+i+")");
}
};class SubClass extends SuperClass
{
private int i; SubClass() {
super(200);
System.out.println("SubClass");
} SubClass(int i) {
this.i = i;
System.out.println("SubClass ("+i+")");
}
};public class TestSuperSub
{
public static void main(String[] args) {
SubClass s1 = new SubClass();
//SubClass s2 = new SubClass(400);
}
};为什么编译时会出错?
D:\java\TestSuperSub\TestSuperSub.java:24: cannot find symbol
symbol : constructor SuperClass()
location: class SuperClass
SubClass(int i) {
^
1 error
{
private int i; /*SuperClass() {
System.out.println("SuperClass");
}*/ SuperClass(int i) {
this.i = i;
System.out.println("SuperClass ("+i+")");
}
};class SubClass extends SuperClass
{
private int i; SubClass() {
super(200);
System.out.println("SubClass");
} SubClass(int i) {
this.i = i;
System.out.println("SubClass ("+i+")");
}
};public class TestSuperSub
{
public static void main(String[] args) {
SubClass s1 = new SubClass();
//SubClass s2 = new SubClass(400);
}
};为什么编译时会出错?
D:\java\TestSuperSub\TestSuperSub.java:24: cannot find symbol
symbol : constructor SuperClass()
location: class SuperClass
SubClass(int i) {
^
1 error
//少了super()或super(i)之类的父类方法
this.i = i;
System.out.println( "SubClass ( "+i+ ") ");
}
调用的是无参数的构造函数:SubClass() {
super(200);
System.out.println( "SubClass ");
} 这里是调用父类的构造函数:SuperClass(int i) 吗?为什么还是会出错?