| //建立共性内容 雇员 abstract class Employee
 {
 private String name; //名字
 private String id; //员工编号
 private double pay;//薪水
 private double bonus ;//奖金
 Employee(String name,String id,double pay)
 {
 this.name = name;
 this.id = id;
 this.pay = pay;
 }
 Employee(String name,String id,double pay,double bonus)
 {
 this.(name,id,pay);//想这里访问另外一个构造函数,但他的类的是抽象的,使用this他说需要标识符。怎么修改这句话???
 //this.(name,id,pay); 应该是这样的
 
 this.bonus = bonus;
 }
 public abstract void work();//抽象方法
 public void show()
 {
 System.out.println("名字:"+name+"\t员工编号:" +id+"\t薪水"+pay);
 }
 public void show()
 {
 System.out.println("名字:"+name+"\t员工编号:" +id+"\t薪水"+pay+"奖金"+bonus);
 }
 }
 //描述程序员
 class Programmer extends Employee
 {
 Programmer(String name,String id,double pay)
 {
 super(name,id,pay);
 }
 public void work()
 {//复写其抽象方法
 
 System.out.println("工作是编写代码");
 }
 }
 //描述经理
 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("工作是管理程序员");
 }
 }
 class Abstract //主类
 {
 public static void main(String[] args)
 {
 Programmer pr = new Programmer("张三","技术部01",3000);
 Manager ma = new Manager("王五","经理",9000, 5000);
 
 pr.show();
 pr.work();
 ma.show();
 ma.work();
 }
 }
 补充一下this用法
 
 this是指对象本身,super则是代表其父类,都是在定义类的时候用到 ;
 
 this关键字只能出现在方法内部,表示调用方法的那个对象的引用,通常情况下编译器会自动帮你添加,只有当你明确指出当前对象的引用时才需要使用this关键字,例如当需要返回当前对象的引用时就常常在return语句里这么写:
 object A{
 ……
 return this;
 }
 如果想在意个构造器重调用另一个构造器,以避免重复代码,你可以用this做到这一点,在构造器中,如果为this添加了参数列表,那么就有了不同的含义,这将产生对符合此参数列表的摸个构造器的明确调用。但并不能在一个构造器中用相同的方法调用两个构造器,而且必须将this调用构造器这行至于最顶端。
 super和this的用法一样  只不过指定的父类对象
 |