我想知道是否可以使用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;
}
}
答案 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。