加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何调用超级(…)和这(…)在重载构造函数的情况下?

发布时间:2020-12-14 16:29:04 所属栏目:Java 来源:网络整理
导读:我以前从来不需要这样做,但由于两者都必须是构造函数中的“第一行”,应该如何处理它?对于这样的情况,最好的重构是什么? 以下是一个示例: public class Agreement extends Postable {public Agreement(User user,Data dataCovered){ super(user); this(use
我以前从来不需要这样做,但由于两者都必须是构造函数中的“第一行”,应该如何处理它?对于这样的情况,最好的重构是什么?

以下是一个示例:

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(用户)的调用是绝对必需的.在这种情况下如何处理“可选参数”?我可以想到的唯一方法是重复,即不要称之为(…).只需在每个构造函数中执行任务.

解决方法

你不能同时调用超级(..)和这个(…).您可以做的是重新构建重载的构造函数的结构,以便最后一个被调用的调用将调用super(…). 如果这不是一个选项,你必须在每个构造函数中执行赋值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读