如何调用基类中存在的参数化构造函数?

时间:2018-07-27 07:03:51

标签: java constructor

IAM编程初学者,介绍如何调用基类中提供的参数化构造函数。 我的代码:

    public class base {
    int a, b;

    base(int x) {
        a = x;
        System.out.println(a);
    }

 static class derived extends base {
        derived(int y) {
            b = y;
            System.out.println(b);
        }
    }

    public static void main(String[] args) {
        derived de = new derived(10);

    }
}

2 个答案:

答案 0 :(得分:3)

super(int)是指base(int x)

derived(int y) {
    super(DEFAULT_VALUE_FOR_A);
    b = y;
    System.out.println(b);
}

其中DEFAULT_VALUE_FOR_A是一个int值,用于初始化a中的字段base

请遵循Java命名约定,您的代码难以阅读。类名的首字母应大写。

答案 1 :(得分:1)

创建父级任何类构造函数的对象时,也称为
在您的情况下,派生的de = new派生的(10); 将在派生的(int y)中调用base()。



在基类中添加默认构造函数,或者调用基数形式的参数化构造函数

public class Base {
int a, b;
Base(){} // if you remove this please add super(0) in Derived(int y)
Base(int x) {
    a = x;
    System.out.println(a);
}
static class Derived extends Base {
    Derived(int y) {
 // super(0);  // uncomment this if you dont want to add default constructor in your parent class
   b = y;
        System.out.println(b);
    }
}
public static void main(String[] args) {
    Derived de = new Derived(10);

}

}