用Java在父类中,定义了2个构造函数,在子类中,也定义了2个构造函数。编写程序显示父类、子类构造函数的调用过程,在子类中实现构造函数的继承。
时间: 2024-03-17 17:42:59 浏览: 93
好的,我来解答您的问题。
首先我们先定义一个父类`Parent`,其中包含了两个构造函数:
```java
public class Parent {
public Parent() {
System.out.println("调用了Parent类的无参构造函数");
}
public Parent(String str) {
System.out.println("调用了Parent类的有参构造函数,参数为:" + str);
}
}
```
接下来,我们再定义一个子类`Child`,并且在其中也定义了两个构造函数:
```java
public class Child extends Parent {
public Child() {
System.out.println("调用了Child类的无参构造函数");
}
public Child(String str) {
super(str);
System.out.println("调用了Child类的有参构造函数,参数为:" + str);
}
}
```
注意,我们在子类的有参构造函数中调用了父类的有参构造函数,使用了`super`关键字。
接下来,我们编写一个测试程序来验证构造函数的调用过程:
```java
public class Test {
public static void main(String[] args) {
System.out.println("创建Parent对象");
Parent p = new Parent();
System.out.println("创建Child对象");
Child c = new Child();
System.out.println("创建Child对象,并传入参数");
Child c2 = new Child("hello");
}
}
```
程序运行结果如下:
```
创建Parent对象
调用了Parent类的无参构造函数
创建Child对象
调用了Parent类的无参构造函数
调用了Child类的无参构造函数
创建Child对象,并传入参数
调用了Parent类的有参构造函数,参数为:hello
调用了Child类的有参构造函数,参数为:hello
```
从结果中可以看出,当我们创建一个子类对象时,首先会调用父类的构造函数,然后再调用子类的构造函数。如果子类的构造函数中调用了父类的构造函数,则需要使用`super`关键字来调用。在Java中,子类的构造函数默认会调用父类的无参构造函数,如果父类没有提供无参构造函数,则必须显式调用父类的有参构造函数。
阅读全文