请问这个程序错在哪里??

beyondada 2004-11-02 04:40:13
public class FatherRevenue{
private double money;
private int year;

FatherRevenue(float m,int y)
{
money=m;
year=y;
}
public double Getmoney(){
return money=money*0.02;
}
public int Getyear(){
return year;
}

public static void main(String args[ ])
{
FatherRevenue f(11.0,1993)=new FatherRevenue ();
SonRevenue s(15.0,1995)=new SonRevenue();
//s.Getyear();
if(s.Getyear()>1995)
System.out.println(f.Getmoney());
else
System.out.println(s.Getmoney());
}
}
class SonRevenue extends FatherRevenue{
private double money;
private int year;
谢谢~~
SonRevenue(double m,int y){
money=m;
year=y;
}

public double Getmoney(){
money=money*0.03;
return money;
}
public int Getyear()
{
return year;
}
}
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
plusjava 2004-11-02
  • 打赏
  • 举报
回复

FatherRevenue f=new FatherRevenue (15.0,1995);
SonRevenue s=new SonRevenue(15.0,1995);

SonRevenue(double m,int y){
super(m,y); //这个不能少的
money=m;
year=y;
}
xiaohaiz 2004-11-02
  • 打赏
  • 举报
回复
程序错在派生类SonRevenue的构造方法。
在其构造方法里面没有显示地构造父类,因此出错。//因为父类没有提供无参数的构造方法
在SonRevenue构造方法第一行加上 super((float)m, y);这个。。
另外
FatherRevenue f(11.0,1993)=new FatherRevenue ();
SonRevenue s(15.0,1995)=new SonRevenue();
这两行什么啊。。
改成:
FatherRevenue f =new FatherRevenue(11.0F, 1993);
SonRevenue s=new SonRevenue(15.0, 1995);
virgin_killer 2004-11-02
  • 打赏
  • 举报
回复
public class FatherRevenue{
protected double money;
protected int year;

protected FatherRevenue(double m,int y)
{
money=m;
year=y;
}
public double Getmoney(){
return money=money*0.02;
}
public int Getyear(){
return year;
}

public static void main(String args[ ])
{
FatherRevenue f = new FatherRevenue (11.0,1993);
SonRevenue s=new SonRevenue(15.0,1995);
//s.Getyear();
if(s.Getyear()>1995)
System.out.println(f.Getmoney());
else
System.out.println(s.Getmoney());
}
}
class SonRevenue extends FatherRevenue{

int year;
SonRevenue(double a,int b){
super(a,b);
}

public double Getmoney(){
money=money*0.03;
return money;
}
public int Getyear()
{
return year;
}
}
注:超类变量应该protected,另外子类继承超类,变量自动继承.你刚刚的代码中,在子类中重新定义了money和year,这就隐藏了超类被继承的变量
plusjava 2004-11-02
  • 打赏
  • 举报
回复
FatherRevenue f=new FatherRevenue (15.0,1995);
SonRevenue s=new SonRevenue(15.0,1995);

62,614

社区成员

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

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