父类
package com.zeng.Adolph;
/**
* 员工
*
* @author Adolph
*
*/
public abstract class Employee {
private String name;
private double salary;
/**
* 构造器
* @param name 姓名
*/
public Employee(String name) {
this.name = name;
}
/**
* 获得名字
* @return 姓名
*/
public String getName() {
return name;
}
/**
* 抽象——————工资
* @return 这里我不知道每个人工资的算法
*/
public abstract double getSalary();
@Override
public String toString() {
return "姓名:" + name + "工资:" + salary ;
}
}
子类
package com.zeng.Adolph;
/**
* 经理
*
* @author Adolph
*
*/
public class Manager extends Employee {
public Manager(String name) {
super(name);
}
/**
* 工资
*/
@Override
public double getSalary() {
return 8000;
}
@Override
public String toString() {
return "经理:" + super.toString();
}
}
子类
package com.zeng.Adolph;
/**
* 程序员
*
* @author Adolph
*
*/
public class Programmer extends Employee {
private int time;
public Programmer(String name) {
super(name);
}
public void gettime(int time) {
this.time = time;
}
/**
* 工资
*/
@Override
public double getSalary() {
return 100 * time;
}
@Override
public String toString() {
return "程序员" + super.toString();
}
}
子类
package com.zeng.Adolph;
/**
* 销售员
* @author Adolph
*
*/
public class Salesman extends Employee {
private double meritpay;
public Salesman(String name) {
super(name);
}
public void setMeritpay( double meritpay) {
this.meritpay = meritpay;
}
/**
* 工资
*/
@Override
public double getSalary() {
return 1200+meritpay*0.05;
}
@Override
public String toString() {
return "销售:" + super.toString() ;
}
}
测试
package com.zeng.Adolph;
import java.util.Scanner;
import com.lovoinfo.util.MyUtil;
public class Test001 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] names = { "邓超", "杜海涛", "刘亦菲", "霍思燕", "黄渤", "Hugh" };
Employee[] yee = new Employee[names.length];
for (int i = 0; i < yee.length; i++) {
switch (MyUtil.random(1, 3)) {
case 1:
yee[i] = new Manager(names[i]);
break;
case 2:
yee[i] = new Programmer(names[i]);
break;
case 3:
yee[i] = new Salesman(names[i]);
break;
}
System.out.println(yee[i]);
for (Employee e : yee) {
if (e instanceof Programmer) {
System.out.print("请输入" + e.getName() + "本月工作时间: ");
((Programmer) e).gettime(sc.nextInt());
} else if (e instanceof Salesman) {
System.out.print("请输入" + e.getName() + "本月销售额: ");
((Salesman) e).setMeritpay(sc.nextDouble());
}
System.out.println(e.getName() + "本月工资为: $" + e.getSalary());
}
sc.close();
}
}
}