当前位置: 代码迷 >> J2SE >> 这段代码提示 cannot find解决办法
  详细解决方案

这段代码提示 cannot find解决办法

热度:9995   发布时间:2013-02-25 00:00:00.0
这段代码提示 cannot find
Java code
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);    }}


------解决方案--------------------------------------------------------
因为 A 没有缺省构造方法,所以 C 的构造方法必须显式调用 A 的构造方法:
Java code
C(int c) {    super(c);    // 显式调用 A 的构造方法    this.c = c;}
------解决方案--------------------------------------------------------
你这编译能通过吗,都有一个构造方法了,子类又来一个构造方法,编译肯定报错的,没有明确调用哪个构造器
------解决方案--------------------------------------------------------
Java code
class C extends A {    int c;    String s;    C(int c) {    super(c);//添加这句,由于父类的构造方法不是默认构造方法,所以子类构造方法必须显示先调用父类的构造方法(没有父亲,哪来儿子)    this.c = c;    }    B b = new B(2);}
------解决方案--------------------------------------------------------
探讨

也就是说在基类没有default constructor的情况下,此基类的子类的构造方法必须显式调用基类的构造方法?
  相关解决方案