Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我必须为java中的所有继承类生成构造函数吗?_Java_Inheritance_Constructor - Fatal编程技术网

我必须为java中的所有继承类生成构造函数吗?

我必须为java中的所有继承类生成构造函数吗?,java,inheritance,constructor,Java,Inheritance,Constructor,我的基类有一个带参数(String、String、int)的构造函数 三个不同的类继承自它。 继承的类A也有一个带参数(String、String、int)的构造函数,但实现方式不同 我的问题是,如果我没有在继承的类B和C中使用参数(String,String,int)创建构造函数,它们会继承基类的构造函数吗? 我在B和C中需要与在基类中相同的实现。通常,不,构造函数不是继承的。您必须在每个子类中重新定义它们 例外情况是隐式无参数构造函数,它调用超类的无参数构造函数,如果没有明确定义其他构造函数

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

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

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


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

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

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

public A(String str, String str2, int num)
{
    super(str, str2, num);
}
额外阅读

  • 您可以阅读有关
    super
    关键字的使用

  • 您可以阅读Java中继承的get


当你尝试时会发生什么?你对构造器这个词了解多少?事实上,super正是我在寻找的东西