Java构造函数的相互调用,是指一个构造函数中调用了另一个构造函数,以达到代码复用和降低代码重复度的目的。在Java中,构造函数相互调用有两种方式:this和super。
使用this关键字调用另一个构造函数时,需要满足两个条件:
下面是一个使用this调用另一个构造函数的示例代码:
public class Person {
private String name;
private int age;
public Person() {
this("Unknown", 0);
}
public Person(String name) {
this(name, 0);
}
public Person(int age) {
this("Unknown", age);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
Person person1 = new Person();
Person person2 = new Person("Tom");
Person person3 = new Person(18);
Person person4 = new Person("Tom", 18);
}
}
解释一下上面的代码:
这个示例代码的输出结果为:
Unknown 0
Tom 0
Unknown 18
Tom 18
使用super关键字调用父类构造函数时,需要满足以下条件:
下面是一个使用super调用父类构造函数的示例代码:
public class Student extends Person {
private String school;
public Student(String school) {
super();
this.school = school;
}
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
public static void main(String[] args) {
Student student1 = new Student("High School");
Student student2 = new Student("Tom", 16, "High School");
}
}
解释一下上面的代码:
这个示例代码的输出结果与前一个示例代码相同,不再赘述。
以上就是Java构造函数的相互调用的完整示例攻略。