构造函数this()不必要吗?

JAN*_*RTS 4 java constructor this default-constructor superclass

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

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

this(plate, order)不必要的,我可以省略吗?

这就是我的U构造函数的样子:

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

    }
Run Code Online (Sandbox Code Playgroud)

Vin*_*ele 8

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

  • 实际上,它甚至不足以成为堆栈溢出.它永远不会成为运行时. (2认同)

Ste*_*n C 7

这将导致编译错误.该JLS 8.8.7节说:

"构造函数通过一系列一个或多个显式构造函数调用直接或间接调用自身是一个编译时错误this."

在这种情况下,构造函数直接调用自身.

  • +1,很好抓!`javac`确实回复了错误`recursive constructor invocation`. (2认同)