在构造函数重载的情况下,如何同时调用 super(...) 和 this(...)?
2022-09-03 12:38:36
我以前从未需要这样做,但是由于两者都必须是构造函数中的“第一”行,因此应该如何处理它?对于这种情况,最好的重构是什么?
下面是一个示例:
public class Agreement extends Postable {
public Agreement(User user, Data dataCovered)
{
super(user);
this(user,dataCovered,null);
}
public Agreement(User user,Data dataCovered, Price price)
{
super(user);
if(price!=null)
this.price = price;
this.dataCovered = dataCovered;
}
...
}
调用是绝对必须的。在这种情况下如何处理“可选参数”?我能想到的唯一方法是重复,即根本不叫这个(...)。只需在每个构造函数中执行赋值。super(user)