super关键字的两种调用父类的构造方法代码
时间: 2024-03-16 10:42:34 浏览: 61
在 Java 中,使用 `super()` 关键字可以调用父类的构造方法。`super()` 关键字可以用于以下两种情况:
1. 调用父类的无参构造方法
如果子类的构造方法中没有使用 `super()` 关键字来调用父类的构造方法,Java 编译器会默认调用父类的无参构造方法(如果父类有的话)。因此,如果父类有无参构造方法,我们可以在子类的构造方法中使用 `super()` 关键字来调用父类的无参构造方法,如下所示:
```
public class Parent {
public Parent() {
// ...
}
}
public class Child extends Parent {
public Child() {
super(); // 调用父类的无参构造方法
// ...
}
}
```
2. 调用父类的有参构造方法
如果父类没有无参构造方法,或者我们希望在子类的构造方法中调用父类的有参构造方法来初始化父类的成员变量,我们可以在子类的构造方法中使用 `super(...)` 关键字来调用父类的有参构造方法,如下所示:
```
public class Parent {
public Parent(String name, int age) {
// ...
}
}
public class Child extends Parent {
public Child(String name, int age, int grade) {
super(name, age); // 调用父类的有参构造方法
// 初始化子类的成员变量
// ...
}
}
```
在上面的示例代码中,我们定义了一个 `Parent` 类,其中包含了一个有参构造方法来初始化两个成员变量。然后我们又定义了一个 `Child` 类,继承自 `Parent` 类,并且新增了一个年级属性。在 `Child` 类的构造方法中,我们使用 `super(name, age)` 的方式来调用父类的有参构造方法,从而初始化 `Parent` 类中的两个成员变量。这样,我们就可以在 `Child` 类中直接使用 `name` 和 `age` 这两个属性了。
阅读全文