使用扩展类构造函数

时间:2013-11-04 17:21:16

标签: java class methods constructor extends

我想知道是否可以使用Class扩展以下内容,如果是这样的话,可以在Java中扩展另一个类。如何?

public class HelloWorld {
    public HelloWorld() {
        A aClass = new A(22);
    }
}

public class A extends B {
    public A() {
        System.out.println(number);
    }
}

public class B {
    public int number;

    public B(int number) {
        this.number = number;
    }
}

1 个答案:

答案 0 :(得分:2)

您的A构造函数需要使用B链接到super构造函数。目前,B中唯一的构造函数采用int参数,因此您需要指定一个,例如

public A(int x) {
    super(x); // Calls the B(number) constructor
    System.out.println(number);
}

请注意,我已x参数添加到A,因为您在HelloWorld中调用它的方式。但您不必具有相同的参数。例如:

public A() {
    super(10);
    System.out.println(number); // Will print 10
}

然后用:

调用它
A a = new A();

每个子类构造函数都链接到同一个类中的另一个构造函数(使用this)或超链接中的构造函数(使用super或隐式)作为第一个构造函数体中的语句。如果链接是隐式的,它总是等同于指定super();,即调用无参数的超类构造函数。

有关详细信息,请参阅section 8.8.7 of the JLS