如何在父(超级)类中调用所选的构造函数

-1 java oop inheritance constructor

我希望在继承期间调用父类的参数化构造函数(选择的构造函数).

但默认情况下我得到了非参数化的构造函数.

class parent
{

    parent(int i){System.out.println("From parameterized constructor");}
    parent(){System.out.println("From Normal Constructore");}
}

class child extends parent
{
    child()
    {
    System.out.println("From child");
    }
}


public class MyClass {
    public static void main(String args[]) {
        child c=new child();
    }
}
Run Code Online (Sandbox Code Playgroud)

Rud*_*haw 6

默认情况下,super()除非特别重写,否则每个构造函数都包含对第一行的调用.所以在你的情况下;

Child() {
    System.out.println("From child");
}
Run Code Online (Sandbox Code Playgroud)

相当于

Child() {
    super();
    System.out.println("From child");
}
Run Code Online (Sandbox Code Playgroud)

哪个super()是对父类的默认构造函数的引用.要改变它.你可以做以下事情;

Child() {
    super(1);
    System.out.println("From child");
}
Run Code Online (Sandbox Code Playgroud)

这应该输出类似的东西

From parameterized constructor
From child
Run Code Online (Sandbox Code Playgroud)