日期:2014-05-20 浏览次数:20840 次
class A {
A(int i) {
System.out.println("class A");
System.out.println("int i = " + i);
}
}
class B {
B(int i) {
System.out.println("class B");
System.out.println("int i = " + i);
}
}
class C extends A {
int c;
String s;
C(int c) {
this.c = c;
}
B b = new B(2);
}
public class Abc {
public static void main(String[] args) {
C c = new C(3);
}
}
C(int c) {
super(c); // 显式调用 A 的构造方法
this.c = c;
}
------解决方案--------------------
你这编译能通过吗,都有一个构造方法了,子类又来一个构造方法,编译肯定报错的,没有明确调用哪个构造器
------解决方案--------------------
class C extends A {
int c;
String s;
C(int c) {
super(c);//添加这句,由于父类的构造方法不是默认构造方法,所以子类构造方法必须显示先调用父类的构造方法(没有父亲,哪来儿子)
this.c = c;
}
B b = new B(2);
}
------解决方案--------------------