初学者问题求助 关于继承的问题

eNdeR_____ 2011-11-22 07:35:01

//代码一
/*父类Rectangle代码*/
class Rectangle{
int len;
int width;
Rectangle(int l,int w){
len=l;
width=w;
}
void getPerimeter(){
System.out.println("长为"+len+"宽为"+width+"的周长是"+2*(len+width));
}
}
/*子类Square代码*/
class Square extends Rectangle{
Square(int l){
super(l,l);
}
void getPerimeter(){
System.out.println("边长为"+len+"的周长是"+4*len);
}
}



//代码二
/*父类Rectangle代码*/
class Rectangle{
int len;
int width;
Rectangle(int l,int w){
len=l;
width=w;
}
void getPerimeter(){
System.out.println("长为"+len+"宽为"+width+"的周长是"+2*(len+width));
}
}
/*子类Square代码*/
class Square extends Rectangle{
Square(int l){
len=l;
width=l;
}
void getPerimeter(){
System.out.println("边长为"+len+"的周长是"+4*len);
}
}


代码一能正常通过编译,而代码二的子类Square却不能正常编译,小弟向各位大虾求解,谢谢!
...全文
66 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
eNdeR_____ 2011-11-24
  • 打赏
  • 举报
回复
自己解决了,因为子类的构造方法会默认调用父类的构造方法,也就是如果不在子类构造方法的方法体里打super(xxx,xxx);的命令的话就会自动默认super();,所以代码二过不了编译。:p

23,409

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧