Java构造方法继承问题

 我来答
开葳不嘉淑
2019-04-24 · TA获得超过3573个赞
知道大有可为答主
回答量:3065
采纳率:27%
帮助的人:224万
展开全部
你好,很高兴为你解答。
这段代码提示B的构造函数错误。这是因为B继承A,B的构造函数会自动调用A的默认构造函数(即不带参数的构造函数),但A没有定义默认构造函数,所以就会报错。有两种改法:
1)在A中增加默认构造函数。如下:
class
A
{
int
a;
String
name;
String
sex;
A(){
//修改这儿
}
A(int
a,
String
name,
String
sex)
{
this.a
=
a;
this.name
=
name;
this.sex
=
sex;
}
void
ShowMess()
{
}
}
class
B
extends
A
{
int
age;
B(int
a,
String
name,
String
sex,
int
age)
{
this.a=a;
this.name=name;
this.sex=sex;
this.age=age;
this.age
=
age;
}
void
ShowMess()
{
System.out.println("a+name+sex+age");
}
}
2)修改B的构造函数,显式地调用A的非默认构造函数。如下:
class
A
{
int
a;
String
name;
String
sex;
A(int
a,
String
name,
String
sex)
{
this.a
=
a;
this.name
=
name;
this.sex
=
sex;
}
void
ShowMess()
{
}
}
class
B
extends
A
{
int
age;
B(int
a,
String
name,
String
sex,
int
age)
{
super(a,name,sex);
//修改这儿
this.age
=
age;
}
void
ShowMess()
{
System.out.println("a+name+sex+age");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式