黑马程序员技术交流社区

标题: 请大哥哥们看看那 [打印本页]

作者: 不服™け你咬我    时间: 2014-9-10 23:52
标题: 请大哥哥们看看那
public class Test3 {
        public static void main(String[] args) {
                Staff s = new Staff("张三","123",5000);
                System.out.println("员工, "+s.getName()+", "+s.getNumber()+", "+s.getPay()+", ");
                Manager m = new Manager("李四","1",8000,2000);
                System.out.println("经理, "+m.getName()+", "+m.getNumber()+", "+m.getPay()+", "+m.getBonus());
        }
}
class Staff{
        private String name;
        private String number;
        private int pay;
       
        public Staff() {
                super();
                // TODO Auto-generated constructor stub
        }
        public Staff(String name, String number, int pay) {
                super();
                this.name = name;
                this.number = number;
                this.pay = pay;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public String getNumber() {
                return number;
        }
        public void setNumber(String number) {
                this.number = number;
        }
        public int getPay() {
                return pay;
        }
        public void setPay(int pay) {
                this.pay = pay;
        }
}
class Manager extends Staff{
        private int bonus;
        public Manager() {
                super();
        }       
        public Manager(String name, String number, int pay, int bonus) {
                super(name,number,pay,bonus);//报错The constructor Staff(String, String, int, int) is undefined
                this.bonus = bonus;
        }
        public int getBonus() {
                return bonus;
        }
        public void setBonus(int bonus) {
                this.bonus = bonus;
        }       
}
小弟调不好啊
作者: 依然超级赛亚人    时间: 2014-9-11 07:02
super(name,number,pay,bonus)用的是父类Staff的构造形式,父构造中没有bonus属性,所以这样初始化不对,参数列表中只保留前三个参数,bonus去掉,你的下面有set和get方法了,所以可以通过这个方法赋值。
作者: 李春丽    时间: 2014-9-11 08:29
        public Manager(String name, String number, int pay, int bonus) {
                 super(name,number,pay,bonus);//报错The constructor Staff(String, String, int, int) is undefined
                 this.bonus = bonus;
         }
super();使用这句时,要时刻注意该方法的父类方法中,参数个数,参数的排列顺序,必须要对应好。
父类中 public Staff(String name, String number, int pay) 只有 3 个参数。bonus 是子类中才有的。




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