Java:子类的构造函数具有父类的Object

时间:2013-10-27 00:24:43

标签: java inheritance constructor

我正在学习Java,我遇到了继承和构造函数的问题。 我有3个班级,A班,B班和C班。 A类是超类,B类扩展A类,C类扩展B类。 B类有一个构造函数,其形式(参数)是一个String。一直都好到这里。 所以现在,我将B类扩展到C类。在C类中,我需要创建一个构造函数 有一个B类实例作为参数。然后我需要提取一些信息 来自B类并存储在C类中。

这是我们的代码。

public class B extends A {

int b;

public B(int b) {
this.b=b;
}

}

public class C extends B {

int c;

public C(B b) {

this.c = b.b;

}

}

在我的主要()

我有以下代码行来创建C

的实例

C c_c = new C(new B(12));

编译时,我收到错误。 错误:B类中的构造函数B不能应用于给定类型;

原因:实际和正式的参数列表长度不同

你们能帮我理解我做错了吗?

2 个答案:

答案 0 :(得分:2)

你必须从C&#39的构造函数中显式调用B&#39的构造函数,因为没有在B类中定义的默认构造函数

public C(B b) {
   super(0);
   this.c = b.b;
}

答案 1 :(得分:0)

您不需要将信息从B重新加载到C.只需将B的字段显示为C,例如使其受到保护