在Java中,子类会继承父类的构造函数。当创建一个子类对象时,会先调用父类的构造函数完成父类对象的初始化,然后再调用子类的构造函数完成子类对象的初始化。
如果子类没有定义构造函数,那么编译器会自动为子类生成一个默认的无参构造函数。如果父类只有有参构造函数,而没有无参构造函数,那么子类必须显示地调用父类的有参构造函数。
如果子类定义了构造函数,那么在子类的构造函数中必须调用父类的构造函数。可以使用`super()`关键字来调用父类的构造函数。`super()`必须作为子类构造函数中的第一条语句,用于调用父类的构造函数。
例如,以下是父类`Person`和子类`Student`的例子:
```java
class Person {
private String name;
public Person(String name) {
this.name = name;
}
}
class Student extends Person {
private int studentID;
public Student(String name, int studentID) {
super(name);
this.studentID = studentID;
}
}
public class Main {
public static void main(String[] args) {
Student student = new Student("John", 12345);
}
}
```
在上面的例子中,子类`Student`继承了父类`Person`的构造函数。在子类的构造函数中,使用`super(name)`调用父类的构造函数来完成父类对象的初始化。然后再完成子类对象的初始化。