为了账号安全,请及时绑定邮箱和手机立即绑定

求问在java中,实现继承时,为什么在子类的构造函数中,要使用super()调用父类构造函数?

求问在java中,实现继承时,为什么在子类的构造函数中,要使用super()调用父类构造函数?

红颜莎娜 2022-04-15 10:11:02
Point(int a, int b) {setPoint(a, b);}public void setPoint(int a, int b) {x=a;y=b;}}class Line extends Point {protected int x, y;Line(int a, int b) {super(a, b);}这样使用怎么错了?class Line extends Point {protected int x, y;Line(int a, int b) {x = a;y = b;}
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

因为你重写了父类的构造方法
Point(int a, int b) {
setPoint(a, b);
}

JAVA规定,构造子类前必须完成父类的构造,所以你必须写Point(int a, int b) {
setPoint(a, b);
}

如果父类有默认无参构造方法,你就可以不用写了
也就是有
public Point(){
}

查看完整回答
反对 回复 2022-04-19
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

这是JAVA的语法规定,子类继承父类的时候必须调用父类的构造器,必须而且SUPER必须写在第一行,(默认这样子写的),如果你第一行没写SUPER就回报错

查看完整回答
反对 回复 2022-04-19
  • 2 回答
  • 0 关注
  • 189 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信