/*
需求:有一个员工类,员工有3个属性,姓名,工资,工号。经理也是员工,除了有员工类的属性外,还有一个奖金属性。
请使用继承的思想设计出员工类和经理类,并写出提供必要的方法访问属性。
思路步骤:
1.员工类是父类,经理类是子类。
2.定义一个show方法,当调用show方法时,会打印出姓名、工号、工资,经理还会打印出奖金。
3.在一个公司里,除了老板,其他都为员工。员工就要为老板工作,所以员工类要定义一个work方法,可是经理的工作与普通员工的工作肯定不同,
所以作为父类的员工类,work方法应该为抽象方法,当经理类继承以后,重写work方法就可以完成经理工作的功能。
*/
abstract class Employee
{
//成员属性一般不暴露出来,用private修饰
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 show()
{
System.out.println(name+"_"+ID+"_"+pay);
}
}
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("管理员工,负责决策");
}
public void show()
{
super.show();
System.out.println("经理的奖金:"+bonus);
}
}
class NormalEmployee extends Employee
{
NormalEmployee(String name,String ID,double pay)
{
super(name,ID,pay);
}
public void work()
{
System.out.println("负责框架设计");
}
}
class TestCompany
{
public static void main(String[] args)
{
Manager m1=new Manager("xiahuan","总经理20101693",8000.00,2000.00);
m1.show();
m1.work();
NormalEmployee n=new NormalEmployee("linfeng","技术部20101881",8000.00);
n.show();
n.work();
}
}
我这个是照着毕老师敲的,你看看 |