-2

我想知道是否可以用一个类来执行以下操作,如果可以的话,它会扩展 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;
    }
}
4

1 回答 1

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();,即调用无参数的超类构造函数。

有关详细信息,请参阅JLS 的第 8.8.7 节。

于 2013-11-04T17:22:51.700 回答