#### 5.1 定义抽象类 Employee

n 声明类 Employee

n 定义构造方法 Employee（）

n 声明私有属性 name

n 声明方法 getName（）

n 声明抽象方法 payment ()。

#### 5.2 定义 CEO 类

n 声明 CEO 类，并且继承类 Employee，且用 final 修饰。

n 声明属性 weeklysalary

n 声明构造方法 CEO (String name, double weeklySalary)

n 实现抽象方法 payment ()

#### 5.3 定义 CommissionedEmployee 类

n 声明 CommissionedEmployee 类，并且继承类 Employee，且用 final 修饰。

n 声明属性 baseSalary、commission 、numItemsSold;

n 声明构造方法 CommissionedEmployee (String name, double bs, double c, int nis)

n 实现抽象方法 payment ()

#### 5.4 定义 PiecedEmployee 类

n 声明 PiecedEmployee 类，并且继承类 Employee，且用 final 修饰。

n 声明属性 amtPerPiece; numPieces;

n 声明构造方法 PiecedEmployee (String name, double app, int np)

n 实现抽象方法 payment ()

#### 5.5 定义 Payroll 类

n 为 Payroll 类添加 main（）

n 在 main()方法中创建一个抽象类 Employee 的数组，并把生成的继承类 CEO、CommissionedEmployee、PiecedEmployee 等实例放入数组。

n 对数组内的每个实例进行循环，对于抽象类的方法 getname（），可以直接调用。

n 根据 instanceof 操作符决定对象的类型来进一步决定程序的输出