A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不服™け你咬我 中级黑马   /  2014-9-10 23:52  /  883 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
        }       
}
小弟调不好啊

2 个回复

倒序浏览
super(name,number,pay,bonus)用的是父类Staff的构造形式,父构造中没有bonus属性,所以这样初始化不对,参数列表中只保留前三个参数,bonus去掉,你的下面有set和get方法了,所以可以通过这个方法赋值。
回复 使用道具 举报
        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 是子类中才有的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马