2013-01-06 71 views
0

我试图理解为什么这个代码编译:为什么不编译这个代码?

public class A { 
} 

public class B extends A { 
    public B() { 
    } 
} 

而此代码不:

public class A { 
    public A(int n) { 
    } 
} 

public class B extends A { 
    public B() { 
    } 
} 

我的意思是,没有A类有一个坯料构造案件?如果是这样,为什么它不工作?

在此先感谢

+0

错误说的是什么? –

回答

6

当超仅具有参数的构造器,你需要明确地让你的父类的构造函数调用从你的子类,如下图所示。

public B() { 
    super(2);// passing an int value to your super class cons 
} 

没有A类在这两种情况下一个空的构造函数?

号如果声明构造那么编译器将不包括默认的构造函数,因此你class A没有一个默认的情况下,2无参数的构造函数,你必须明确地使从超通话你的子类的构造函数。