在此示例中,我们将学习如何在Java中从一个构造函数调用另一个构造函数。
要理解此示例,您应该了解以下Java编程主题:
class Main {
int sum;
//第一个构造函数
Main() {
//调用第二个构造函数
this(5, 2);
}
//第二个构造函数
Main(int arg1, int arg2) {
//两个值相加
this.sum = arg1 + arg2;
}
void display() {
System.out.println("总和: " + sum);
}
// main 类
public static void main(String[] args) {
// 调用第一个构造函数
Main obj = new Main();
// 调用显示方法
obj.display();
}
}输出结果
总和: 7
在上面的示例中,我们创建了一个名为Main的类。在这里,您在Main类内部创建了两个构造函数。
Main() {..}
Main(int arg1, int arg2) {...}在第一个构造函数中,我们使用了 this 关键字来调用第二个构造函数。
this(5, 2);
在这里,通过传递参数 5 和 2 从第一个构造函数调用第二个构造函数。
注意:构造函数中调用另一个构造函数的行,应为该构造函数的第一行。也就是说,this(5, 2)应该是 Main() 的第一行。
我们还可以使用super(),从子类的构造函数中调用超类的构造函数。
// 超类
class Languages {
//超类的构造函数
Languages(int version1, int version2) {
if (version1 > version2) {
System.out.println("最新版本是: " + version1);
}
else {
System.out.println("最新版本是: " + version2);
}
}
}
//子类
class Main extends Languages {
//子类的构造函数
Main() {
//调用超类的构造函数lass
super(11, 8);
}
// main 方法
public static void main(String[] args) {
// 调用第一个构造函数
Main obj = new Main();
}
}输出结果
最新版本是: 11
在上面的示例中,我们创建了一个名为Languages的超类和一个Main子类。 在Main类的构造函数中,请注意以下行:
super(11, 8);
在这里,我们从子类(Main())的构造函数中调用超类的构造函数(即Languages(int version1,int version2))。