是否可以从另一个类(在同一个类内,而不是从子类)调用构造函数?如果是,是怎么回事?调用另一个构造函数的最佳方式是什么(如果有几种方法可以做到这一点)?
是否可以从另一个类(在同一个类内,而不是从子类)调用构造函数?如果是,是怎么回事?调用另一个构造函数的最佳方式是什么(如果有几种方法可以做到这一点)?
是的,有可能:
public class Foo {
private int x;
public Foo() {
this(1);
}
public Foo(int x) {
this.x = x;
}
}
要链接到特定的超类构造函数,而不是同一类中的构造函数,请使用super
而不是this
.请注意,you can only chain to one constructor和it has to be the first statement in your constructor body.
另请参阅this related question,它与C#有关,但也适用相同的原则.