细节:
*在构造器中this与super不能同时使用 因为两个在构造器中都必须放在首行
*在构造器中 this()和super()调用中参数必须一一对应 子类调用构造器 会主动调用父类的构造器
这是因为在 Java 中,子类的构造器在执行时,会先调用父类的构造器,以确保父类的初始化工作完成。
如果子类的构造器显式地调用了父类的构造器,则会使用 super() 来实现这一调用。如果父类没有无参构造器,或者需要调用父类的其他构造器,可以使用 super(…) 来指定调用父类的特定构造器。
```java
public class Parent {
public Parent() {
System.out.println("Parent constructor");
}
public Parent(int value) {
System.out.println("Parent constructor with value: " + value);
}
}
public class Child extends Parent {
public Child() {
// 调用父类的无参构造器
//super(); 自动调用
System.out.println("Child constructor");
}
public Child(int value) {
// 调用父类的有参构造器
super(value);
System.out.println("Child constructor with value: " + value);
}
}
*this 永远是表示从当前对象开始 super就是跳过当前对象 从父类开始 直到访问成功才结束 私有类要通过公开方法才能访问