从一个构造函数中调用另一个构造函数的 Java 程序
要理解此示例,您应该具备以下 Java 编程的知识:
示例 1:Java 程序从另一个调用一个构造函数
public class Main {
int sum;
// first constructor
Main() {
// calling the second constructor
this(5, 2);
}
// second constructor
Main(int arg1, int arg2) {
// add two value
this.sum = arg1 + arg2;
}
void display() {
System.out.println("Sum is: " + sum);
}
// main class
public static void main(String[] args) {
// call the first constructor
Main obj = new Main();
// call display method
obj.display();
}
}
输出
Sum is: 7
在上面的例子中,我们创建了一个名为 Main
的类. 在这里,您在 Main
类内部创建了两个构造函数。
Main() {..}
Main(int arg1, int arg2) {...}
在第一个构造函数中,我们使用 this
关键字来调用第二个构造函数。
this(5, 2);
在这里,从第一个构造函数调用第二个构造函数并传递参数 5
和 2
。
注意:构造函数中调用另一个构造函数的行应该是构造函数的第一行。也就是说, this(5, 2)
应该是 Main()
的第一行。
例 2:从子类的构造函数调用超类的构造函数
我们也可以使用 super()
从子类的构造函数中调用超类的构造函数。
// superclass
public class Languages {
// constructor of the superclass
Languages(int version1, int version2) {
if (version1 > version2) {
System.out.println("The latest version is: " + version1);
}
else {
System.out.println("The latest version is: " + version2);
}
}
}
// child class
public class Main extends Languages {
// constructor of the child class
Main() {
// calling the constructor of super class
super(11, 8);
}
// main method
public static void main(String[] args) {
// call the first constructor
Main obj = new Main();
}
}
输出
The latest version is: 11
在上面的例子中,我们创建了一个名为 Languages
的超类 和一个子类 Main
. 在子类 Main
的构造函数内部,注意这一行,
super(11, 8);
在这里,我们从子类的构造函数 Main()
中调用超类的构造函数 Languages(int version1, int version2)
。