有一道题目是书本上的 题目本来是想要得到如下结果:
经理的工资为:3800
员工的工资为:1480
我的程序运行后不知道后面怎么多了两个数 一直不知道是怎么来的 
我的程序运行的结果如下:
经理的工资为:3800
员工的工资为:14801600
960
请问这个1600 和 960是怎么来 
要怎样改才能去掉这两个数而只要上面的
经理的工资为:3800
员工的工资为:1480
这个结果。
我写的代码:
class Yuangong{
        String name;
int salary;
        int age;
Yugong(String n,int i){
this.name=n;
                this.age=i;
                
}
public int getSalary(){
this.salary=this.salary+this.age*20;
                        return salary;
}
}
class Boss extends Yuangong{
int salary=3000;
Boss(String n,int i){
                super(n,i);
System.out.println("经理的工资为:"+(super.getSalary()+this.salary));
}
}
class Emp extends Yuangong{
int salary=1000;
Emp(String n,int i){
                super(n,i);
System.out.println("员工的工资为:"+(super.getSalary()+this.salary)+"\n");
}
}
public class Testwu{
public static void main(String[] args){
Boss b=new Boss("张三",40);
Emp e=new Emp("李四",24);
                        System.out.println(b.getSalary());
                        System.out.println(e.getSalary());
     }
}

解决方案 »

  1.   

    System.out.println(b.getSalary());
    System.out.println(e.getSalary());
    这两句去掉
      

  2.   

    先把代码给你吧package com.amos.factory;
    class Yuangong {
    String name;
    int salary;
    int age;  Yuangong(String n, int i) {
    this.name = n;
    this.age = i; } public int getSalary() {
    this.salary = this.salary + this.age * 20;
    return salary;
    }
    }class  BossA extends Yuangong {
    int salary = 3000;  public BossA(String n, int i) {
    super(n, i);
    System.out.println("经理的工资为:" + (super.getSalary() + this.salary));
    }
    }class Emp extends Yuangong {
    int salary = 1000;
    Emp(String n, int i) {
    super(n, i);
    System.out
    .println("员工的工资为:" + (super.getSalary() + this.salary) + "\n");
    }
    }public class Testwu {
    public static void main(String[] args) {
     BossA b = new  BossA("张三", 40);
    Emp e = new Emp("李四", 24);
    }
    }
    问题在那里列?
    1.当我把代码拷进eclipse的时候已经报错了,不知道这位大哥你是怎么运行出结果的。这点我很佩服你。在报错的情况下都能运行成功。你看下你YuanGong这个类,看下他的构造函数,写对了吗?
    2。你的BOSS类和Emp类的构造函数中已经有打印语句了。也就是说当你选择BOSS 和EMP对象的时候他们就已经打印出了他们的工资,也就是执行
     BossA b = new  BossA("张三", 40);
    Emp e = new Emp("李四", 24);
    的时候就已经打印出来了
    而你下面的打印,则会去掉用YuanGong类的getSalary()方法 所以你后面的两个数就是下面的2个打印语句打出来的,其实你自己加个断点就可以看出来了。
      

  3.   

    把最后
    System.out.println(b.getSalary());
    System.out.println(e.getSalary());
    去掉..
      

  4.   

    兄弟我是用记事本写的  当时是运行成功了
    结果我也给出来了还是COPY过来的