在Java构造函数中调用Super

时间:2015-02-23 16:58:47

标签: java constructor super

我知道在Java中创建子类时会调用super。但是在每个构造函数中都是超级调用,还是仅在子类的第一个构造函数中调用?

由于

2 个答案:

答案 0 :(得分:1)

  

但是在每个构造函数中都是超级调用,或者仅在第一个构造函数中调用   子类的构造函数?

首先,没有像第一个构造函数第二个构造函数,因为构造函数调用将基于对象创建。

如果以这种方式创建Object

 new MyClass(); //then no-argument constructor will be called

如果以这种方式创建对象

new MyClass("ABC");// then parameterized constructor will be called

因此在第一行的每个构造函数中调用super()

注意:如果使用this()显式调用同一个类中的其他构造函数,那么在该场景中super()将不会在现有构造函数中调用

答案 1 :(得分:0)

你可以从同一个类中调用另一个构造函数:

MyClass(int someValue){   这个(someValue,false);   .... }

在这种情况下,不会调用超级构造函数,但会在第一个构造函数中调用它,该构造函数不会从类中调用另一个构造函数。