黑马程序员技术交流社区

标题: 继承问题 到底哪里错了 [打印本页]

作者: 任献东    时间: 2014-10-16 11:09
标题: 继承问题 到底哪里错了
  1. public class Test1 {

  2.         public static void main(String[] args) {
  3.            Employee em = new Employee("lisi", "9527", 3000);
  4.            Manager ma = new Manager("wangwu", "3978", 5500, 1500);
  5.            System.out.println("员工:"+em.getName()+"工号:"+em.getNumber()+"工资:"+em.getSalary());
  6.            System.out.println("员工:"+ma.getName()+"工号:"+ma.getNumber()+"工资:"+em.getSalary());
  7.         }

  8. }
  9. class Employee {//职工
  10.         private String name;
  11.         private String number;
  12.         private double Salary;
  13.         public void setName(String name) {
  14.                 this.name = name;
  15.         }
  16.         public void setNumber(String number) {
  17.                 this.number = number;
  18.         }
  19.         public void setSalary(double Salary) {
  20.                 this.Salary = Salary;
  21.         }
  22.     public String getName() {
  23.         return name;
  24.     }
  25.     public String getNumber() {
  26.         return number;
  27.     }
  28.     public double getSalary() {
  29.         return Salary;
  30.     }
  31.     public Employee(String name,String number,double Salary){
  32.         this.name=name;
  33.         this.number=number;
  34.         this.Salary=Salary;
  35.     }
  36. }
  37. class Manager extends Employee{//经理继承
  38.     private double award;//奖金
  39.     public double getAward() {
  40.                 return award;
  41.         }
  42.         public void setAward(double award) {
  43.                 this.award = award;
  44.         }
  45.         public Manager(String name, String number, double Salary,double award) {
  46.         super(name, number, Salary);
  47.         // TODO Auto-generated constructor stub
  48.         this.award=award;
  49.     }
  50.     public double getSalary(){
  51.         return super.getSalary()+this.award;
  52.     }
  53. }
复制代码

员工:lisi工号: 9527工资:3000.0
经理:wangwu工号: 3978工资:3000.0
经理的工资为什么数值不对啊  到底哪里错了


作者: DreamSeeker    时间: 2014-10-16 12:07
你经理的getSalary()方法根本就没有执行过。。。。。。。。。。。
作者: DreamSeeker    时间: 2014-10-16 12:10
我的个去,终于看见了,你看你调用的是谁的方法,你两次调用的都是员工的getSalary()方法,要是能把经理工资输出来才是见鬼了...
作者: DreamSeeker    时间: 2014-10-16 12:12
  1. System.out.println("员工:"+ma.getName()+"工号:"+ma.getNumber()+"工资:"+em.getSalary());
复制代码

你用em.getSalary()想输出ma.getSalary(),你也是醉了
作者: 任献东    时间: 2014-10-16 12:17
DreamSeeker 发表于 2014-10-16 12:10
我的个去,终于看见了,你看你调用的是谁的方法,你两次调用的都是员工的getSalary()方法,要是能把经理工资 ...

啊啊啊  我也刚注意到  经理的对象忘改了亏我还找了半天逻辑错误  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2