我知道在Java中创建子类时会调用super。但是在每个构造函数中都是超级调用,还是仅在子类的第一个构造函数中调用?
由于
答案 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); .... }
在这种情况下,不会调用超级构造函数,但会在第一个构造函数中调用它,该构造函数不会从类中调用另一个构造函数。