Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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_Constructor_This_Superclass_Default Constructor - Fatal编程技术网

Java 构造函数()是否不必要?

Java 构造函数()是否不必要?,java,constructor,this,superclass,default-constructor,Java,Constructor,This,Superclass,Default Constructor,有一个类U1正在扩展类U。 U班是空的 在U1的构造函数中有第一行,调用超类的构造函数 public U1(Plate plate, int order) { super(plate, order); ... } 现在我想删除U1类并在U类中执行到目前为止在U1中所做的任何操作。。。 所以,现在我不需要调用超类的构造函数,因为类U不会有任何超类 public U1(Plate plate, int order) { super(plate, order); ... } 这个(

有一个类U1正在扩展类U。 U班是空的

在U1的构造函数中有第一行,调用超类的构造函数

public U1(Plate plate, int order)
{
   super(plate, order);
...

}
现在我想删除U1类并在U类中执行到目前为止在U1中所做的任何操作。。。 所以,现在我不需要调用超类的构造函数,因为类U不会有任何超类

public U1(Plate plate, int order)
{
   super(plate, order);
...

}
这个(盘子、订单)
是不必要的,我可以省略它吗

这就是我的U构装师的样子:

public U(Plate plate, int order)
    {
       this(plate, order);
    ...

    }

这是不必要的,我希望它会导致堆栈溢出,因为您可以从构造函数中调用构造函数本身。

但您不能操作它。您必须对其进行操作,否则它将充当一个永无止境的递归调用。

它将导致编译错误。报告说:

“构造函数通过一系列涉及
this
的一个或多个显式构造函数调用直接或间接调用自身是编译时错误。”

在本例中,构造函数直接调用自身。

我们在构造函数中调用super()来初始化从super类继承的实例变量,因此如果没有super类,则无需调用super()——异常java.lang.Object。 如果其中有多个构造函数,我们可以使用()调用其他构造函数,但不调用
构造函数本身,这导致了前面提到的不好的事情。

在下面的示例中,我们将得到错误:递归构造函数调用

class TestConstruct{
 public TestConstruct(){
  this();
  System.out.println("constructor of Test class");
 }//end of constructor 
}//end of class TestConstruct
public class AppConstruct{ 
 public static void main(String[] a){
 Test t = new Test(); 
 }//end of main
}//end of AppConstruct

+1、接得好
javac
确实返回了错误
递归构造函数调用
。实际上,它甚至不足以导致堆栈溢出。它永远不会到达运行时。