package com.lin_abstract_02;
//测试类
public class Test1 {
public static void main(String[] args) {
//测试程序员类:抽象类多态
//无参+setXXX
Employee p=new Programmer();
p.setEmpName("张三");
p.setEmpId("200231");
p.setEmpSalary(9999);
p.work();
System.out.println(p.getEmpName()+"--"+p.getEmpId()+"---"+p.getEmpSalary());
Programmer pg=(Programmer)p;
pg.workThinking();
System.out.println("----------");
//有参构造方法传递
p=new Programmer("李四","45652",99999);
p.work();
System.out.println(p.getEmpName()+"--"+p.getEmpId()+"---"+p.getEmpSalary());
Programmer pg2=(Programmer)p;
pg.workThinking();
System.out.println("---------------------------------------------");
/*//测试经理类
//无参+setXXX
Employee p1=new Manger();
p1.setEmpName("赵武");
p1.setEmpId("25551");
p1.setEmpSalary(89988);
p1.work();
Manger pg3=(Manger)p1;
pg3.setBonus(2000);
pg3.talk();
System.out.println(p1.getEmpName()+"--"+p1.getEmpId()+"---"+p1.getEmpSalary()+"--"+pg3.getBonus());
System.out.println("---------------------");
//有参构造方法传递
p1=new Manger("赵武","25551",89988,2000);
p1.work();
System.out.println(p1.getEmpName()+"--"+p1.getEmpId()+"---"+p1.getEmpSalary()+"--"+pg3.getBonus());*/
//直接创建对象
Manger m=new Manger();
m.setBonus(50);
m.setEmpId("789456");
m.setEmpName("赵四");
m.setEmpSalary(789);
m.talk();
System.out.println(m.getEmpName()+"--"+m.getEmpId()+"---"+m.getEmpSalary()+"--"+m.getBonus());
}
}
package com.lin_abstract_02;
//抽象的员工类
public abstract class Employee {
private String empName;
private String empId;
private int empSalary;
//无参构造:alt+shift+s--->c
public Employee() {
super();
}
//有参构造:alt+shift+s-->o
public Employee(String empName, String empId, int empSalary) {
super();
this.empName = empName;
this.empId = empId;
this.empSalary = empSalary;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getEmpId() {
return empId;
}
public void setEmpId(String empId) {
this.empId = empId;
}
public int getEmpSalary() {
return empSalary;
}
public void setEmpSalary(int empSalary) {
this.empSalary = empSalary;
}
//工作方法
public abstract void work();
}
package com.lin_abstract_02;
//经理类
public class Manger extends Employee {
//特有属性
private int bonus;
public int getBonus() {
return bonus;
}
public void setBonus(int bonus) {
this.bonus = bonus;
}
public Manger() {
super();
}
public Manger(String empName, String empId, int empSalary,int bonus) {
super(empName, empId, empSalary);
this.bonus=bonus;
}
@Override
public void work() {
System.out.println("谈项目");
}
//特有功能
public void talk() {
System.out.println("经常和甲方沟通");
}
}
package com.lin_abstract_02;
public class Programmer extends Employee {
public Programmer() {
super();
// TODO Auto-generated constructor stub
}
public Programmer(String empName, String empId, int empSalary) {
super(empName, empId, empSalary);
// TODO Auto-generated constructor stub
}
@Override
public void work() {
System.out.println("敲代码");
}
public void workThinking() {
System.out.println("追求完美");
}
}