构造方法可以调用本类中重载的构造方法和它的父类的构造方法

1.调用本类中重载的构造方法
构造方法可以通过this()来调用本类中其他重载的构造方法。但是,这个调用必须位于构造方法的第一行,也就是说,它是构造方法中的第一个语句。这是因为构造方法需要先完成一些初始化工作,然后才能调用其他构造方法继续初始化。

示例:

public class MyClass {  
    private int x;  
    private int y;  

    public MyClass(int x) {  
        this(x, 0); // 调用另一个构造方法  
    }  

    public MyClass(int x, int y) {  
        this.x = x;  
        this.y = y;  
    }  
}

2.调用父类的构造方法
构造方法可以通过super()来调用其父类的构造方法。同样地,这个调用也必须位于构造方法的第一行。如果没有显式地调用父类的构造方法,编译器会默认调用父类的无参数构造方法(如果存在的话)。如果父类没有无参数的构造方法,并且子类也没有显式地调用父类的其他构造方法,那么编译时会出现错误。

示例:

public class ParentClass {  
    public ParentClass(int value) {  
        // 父类的构造方法  
    }  
}  

public class ChildClass extends ParentClass {  
    public ChildClass(int value) {  
        super(value); // 调用父类的构造方法  
        // 其他初始化代码  
    }  
}

如果父类没有无参数的构造方法,并且子类也没有显式地调用父类的其他构造方法,那么子类在编译时会报错,因为它找不到默认的父类构造方法来调用。

在Java中,this()super()在构造方法中的使用是互斥的,也就是说,一个构造方法中不能同时调用this()super()。此外,如果子类构造方法既没有显式调用this()(即没有调用本类中的其他构造方法),也没有显式调用super()(即没有调用父类的构造方法),那么编译器会隐式调用父类的无参数构造方法(如果存在)。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值