我是否必须为java中的所有继承类创建构造函数?

时间:2014-02-01 10:53:40

标签: java inheritance constructor

我的基类有一个带参数的构造函数(String,String,int) 三个不同的类继承自它。 继承的类A具有一个带有参数(String,String,int)的构造函数,但具有不同的实现。

我的问题是,如果我不使用参数(String,String,int)在继承的类B和C中创建构造函数,它们是否会继承基类的构造函数? 我需要在B和C中使用与基类相同的实现。

2 个答案:

答案 0 :(得分:2)

如果未在基类BC中指定构造函数,则将获得默认构造函数。这是运行时提供的无参数构造函数,您可以将其用于任何Object,而无需定义明确的constructor

如果要访问超类构造函数,可以执行类似的操作。

public A(String str, String str2, int num)
{
    super(str, str2, num);
}

额外阅读

  • 您可以阅读有关使用super关键字here的信息。

  • 您可以阅读有关Java继承的内容here

答案 1 :(得分:0)

通常,不,构造函数不是继承的。你必须在每个子类中重新定义它们。

这个例外是隐式无参数构造函数,它调用超类的无参数构造函数,如果没有明确定义其他构造函数,它就会出现。