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

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;
}

红颜莎娜
浏览 193回答 2
2回答

鸿蒙传说

因为你重写了父类的构造方法Point(int a, int b) {setPoint(a, b);}JAVA规定,构造子类前必须完成父类的构造,所以你必须写Point(int a, int b) {setPoint(a, b);}如果父类有默认无参构造方法,你就可以不用写了也就是有public Point(){}

摇曳的蔷薇

这是JAVA的语法规定,子类继承父类的时候必须调用父类的构造器,必须而且SUPER必须写在第一行,(默认这样子写的),如果你第一行没写SUPER就回报错
打开App,查看更多内容
随时随地看视频慕课网APP