package com.itheima;
/*
* 第三题:假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。
* 经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。请使用继承的思想设计出员工类和经
* 理类。要求类中提供必要的方法进行属性访问。
* @author zhoushangpeng
*/
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee e = new Employee("zhangsan", "1", 100);
Manager m = new Manager("lisi","2",1000);
e.work();
}
}
//思路:
//员工分普通员工和经理。
//1,首先将两个共性的东西向上抽取。(姓名,age,id,工资。有一个工作方法。)
// 因为普通和经理工作内容不同。需要这两个子类自己去实现。那么该方法是抽象的。(好处,普通和经理只要是员工就必须工作,强制性。)
//2,在定义经理类,除了拿到父类中共性的东西,他还有特性的东西。(奖金)
//*/
//工作类的抽象
abstract class Worker
{
private String name;
private String ID;
private double pay;
Worker( String name, String ID, double pay )
{
this.name=name;
this.ID=ID;
this.pay=pay;
}
public void setName( String name )
{
this.name=name;
}
public String getName()
{
return name;
}
public void setID( String ID )
{
this.ID=ID;
}
public String getID()
{
return ID;
}
public void setPay( double pay )
{
this.pay=pay;
}
public double getPay()
{
return pay;
}
abstract public void work();
}
//这是工人类
class Employee extends Worker
{
Employee( String name, String ID, double pay )
{
super( name,ID,pay );
}
//强制实现了工作方法
@Override
public void work()
{
System.out.println( "Employee work" );
}
}
//这是经理类
class Manager extends Worker
{
int money;
public void setMoney( int money )
{
this.money=money;
}
public int getMoney() {
return money;
}
public Manager(String name, String ID, double pay) {
super(name, ID, pay);
// TODO Auto-generated constructor stub
}
//强制实现了工作方法
@Override
public void work()
{
System.out.println( "Manager work" );
}
}
|
|