示例 1: Java 程序从另一个调用一个构造函数
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 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 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)
)。