本帖最后由 Mokill0911 于 2014-7-15 22:48 编辑
最近看到了抽象类,然后看毕老师降到了一个员工建模的小练习。
自己写完了代码,也实现了基本需求,然后突发奇想是否可以加入一个扩展功能。
主要思想是在父类Employee中加入一个扩展功能,能够显示雇员的信息,如名字,工号和工资;
代码如下:
- abstract class Employee
- {
- private String name;
- private String id;
- private double pay;
- Employee(String name,String id,double pay)
- {
- this.name= name;
- this.id= id;
- this.pay= pay;
- }
- public abstract void work();
- public void display()// 显示雇员的信息;
- {
- System.out.println(name+","+id+","+pay);
- }
- }
- class Pro extends Employee
- {
- Pro(String name,String id,double pay)
- {
- super(name,id,pay);
- }
- public void work()
- {
- System.out.println("Pro working");
- }
- }
- class Manager extends Employee
- {
- private double bonus;
- Manager(String name,String id,double pay,double bonus)
- {
- super(name,id,pay);
- this.bonus= bonus;
- }
- public void work()
- {
- System.out.println("Manager working");
- }
- /* public void display()
- {
- System.out.println(super.name+","+super.id+","+super.pay+","+this.bonus);
- }
- */
- }
- class AbstractTest2
- {
- public static void main(String[] args)
- {
- Manager mJoker = new Manager("Mjokers","M001",8000,10000);
- mJoker.work();
- mJoker.display();
- }
- }
复制代码
问题出现在经理Manager类中;
当我想要在Manager类里通过复写方式扩展父类Employee里的display() 方法时,编译时提示错误;
name可以在Employee中访问private
因为按照需求,经理比普通员工多了一个奖金属性,所以父类Employee里的display()方法显示的信息并不完善,只有普通雇员的三个属性,但当加入注释里的语句之后,编译会出错。
望各位指教一下思路。
先行谢过:) |
|