A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下面通过一个实例,来说明抽象类的使用:
  1. /*
  2. 假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:
  3. 姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个
  4. 奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方
  5. 法进行属性访问。

  6. 员工类:name id pay

  7. 经理类:继承了员工,并有自己特有的bonus。

  8. */  
  9.   
  10. //员工类,也是父类  
  11. abstract class Employee  
  12. {  
  13.     private String name;//姓名  
  14.     private String id;  //工号  
  15.     private double pay;  //工资  
  16.       
  17.     //自定义构造函数初始化  
  18.     Employee(String name,String id,double pay)  
  19.     {  
  20.         this.name = name;  
  21.         this.id = id;  
  22.         this.pay = pay;  
  23.     }  
  24.       
  25.     public abstract void work();//抽象的工作方法  
  26.   
  27. }  
  28.   
  29. //经理类,继承员工类  
  30. class Manager extends Employee  
  31. {  
  32.     private int bonus;//特有的奖金属性  
  33.     Manager(String name,String id,double pay,int bonus)//子类的构造方法  
  34.     {  
  35.         super(name,id,pay);//调用超类中的构造器  
  36.         this.bonus = bonus;  
  37.     }  
  38.     public void work()//经理类的工作方法内容  
  39.     {  
  40.         System.out.println("manager work");  
  41.     }  
  42. }  
  43.   
  44. //普通员工类,继承员工类  
  45. class Pro extends Employee  
  46. {  
  47.     Pro(String name,String id,double pay)  
  48.     {  
  49.         super(name,id,pay);  
  50.     }  
  51.     public void work()//普通员工类的工作方法内容  
  52.     {  
  53.         System.out.println("pro work");  
  54.     }  
  55. }  
  56.   
  57. class  AbstractDemo   
  58. {  
  59.     public static void main(String[] args)   
  60.     {  
  61.         new Manager("manager","001",10000,2000).work();  
  62.         new Pro("pro","020",5000).work();  
  63.     }  
  64. }  
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马