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

Point(inta,intb){setPoint(a,b);}publicvoidsetPoint(inta,intb){x=a;y=b;}}classLineexte... 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;
}
展开
 我来答
flyingFish211
2012-04-11 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
因为你重写了父类的构造方法
Point(int a, int b) {
setPoint(a, b);
}

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

如果父类有默认无参构造方法,你就可以不用写了
也就是有
public Point(){
}
的发生近段时
2012-04-11
知道答主
回答量:41
采纳率:0%
帮助的人:17万
展开全部
这是JAVA的语法规定,子类继承父类的时候必须调用父类的构造器,必须而且SUPER必须写在第一行,(默认这样子写的),如果你第一行没写SUPER就回报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
净静的焱
2012-04-11 · 超过35用户采纳过TA的回答
知道答主
回答量:362
采纳率:0%
帮助的人:174万
展开全部
这是java规定的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式