java 子类初始化时调用父类构造方法后还会不会调用自己的构造方法
时间: 2024-11-13 08:27:13 浏览: 6
java中的继承(子类调用父类构造方法还不懂).doc
当Java子类初始化(构造)时,确实会在调用父类构造方法之后调用自己的构造方法。这是为了保证子类能够有完整的初始化过程,包括父类的属性设置以及子类特有的初始化步骤。
如果子类也定义了构造函数,那么无论子类的构造函数是否显式调用了父类的构造函数,Java默认会隐式地调用父类的无参构造函数。之后,如果有明确调用子类构造函数的部分,就会执行这部分逻辑。
例如:
```java
class Parent {
public Parent() {
System.out.println("Parent constructor");
}
}
class Child extends Parent {
public Child() {
super(); // 显式调用父类构造函数
System.out.println("Child constructor");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child(); // 构造 Child 实例会先调用 Parent 构造,然后调用 Child 构造
}
}
```
运行结果会先输出 "Parent constructor",然后输出 "Child constructor"。
阅读全文