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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ~﹏~ 中级黑马   /  2013-11-8 20:43  /  1262 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

设计一个人员类(Person),其中包含一个方法pay,代表人员的工资支出
设计一个人员类(Person),其中包含一个方法pay,代表人员的工资支出。再从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(AssistantProfessor)和教授类(Professor)。其中
       工资支出=基本工资+工作量外授课时数*每课时兼课金
但助教基本工资为800元,工作量外每课时兼课金25元,讲师基本工资为1000元,工作量外每课时兼课金30元,副教授基本工资为1200元,工作量外每课时兼课金为35元,教授基本工资为1400元,工作量外每课时兼课金为40元。
(1)      将Person类定位为抽象类,pay为抽象方法,设计程序实现多态性。
(2)      将Person定义为接口,设计程序实现多态性。

我自己按照题目写了这样的类,但是感觉写的不太对,求大神写个现成的我参考参考。。。
谢谢!!!{:soso_e141:}

评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

1 个回复

倒序浏览
  1. abstract class Person
  2. {
  3.     protected float fSum = 0f;
  4.     protected float fBasicSal = 0f;
  5.     protected int iOutNum = 0;
  6.     protected int iEveryMon = 0;
  7.     //工资支出=基本工资+工作量外授课时数*每课时兼课金
  8.     abstract float pay(int iOutNum);
  9. }
  10. class Assistant extends Person
  11. {
  12.     public Assistant()
  13.     {
  14.         super();   
  15.         this.fBasicSal = 800;
  16.         this.iEveryMon = 25;
  17.     }
  18.     float pay(int iOutNum)
  19.     {
  20.         return fSum = fBasicSal+iOutNum*iEveryMon;
  21.     }
  22. }
  23. class Instructor extends Person
  24. {
  25.     public Instructor()
  26.     {
  27.         super();   
  28.         this.fBasicSal = 1000;
  29.         this.iEveryMon = 30;
  30.     }
  31.     float pay(int iOutNum)
  32.     {
  33.         return fSum = fBasicSal+iOutNum*iEveryMon;
  34.     }
  35. }
  36. class AssistantProfessor extends Person
  37. {
  38.     public AssistantProfessor()
  39.     {
  40.         super();   
  41.         this.fBasicSal = 1200;
  42.         this.iEveryMon = 35;   
  43.     }
  44.    
  45.     float pay(int iOutNum)
  46.     {
  47.         return fSum = fBasicSal+iOutNum*iEveryMon;

  48.     }
  49. }
  50. class Professor extends Person
  51. {
  52.     public Professor()
  53.     {
  54.         super();   
  55.         this.fBasicSal = 1400;
  56.         this.iEveryMon = 40;
  57.     }
  58.     float pay(int iOutNum)
  59.     {
  60.         return fSum = fBasicSal+iOutNum*iEveryMon;
  61.    
  62.     }
  63. }

  64. interface Person
  65. {    //工资支出=基本工资+工作量外授课时数*每课时兼课金
  66.     abstract float pay(int iOutNum);
  67.    
  68. }
  69. class Assistant implements Person
  70. {
  71.     float fSum = 0f;
  72.     float fBasicSal = 0f;
  73.     int iOutNum = 0;
  74.     int iEveryMon = 0;
  75.     public Assistant()
  76.     {
  77.         super();   
  78.         fBasicSal = 800;
  79.         iEveryMon = 25;
  80.     }
  81.     public float pay(int iOutNum)
  82.     {
  83.         return fSum = fBasicSal+iOutNum*iEveryMon;
  84.     }
  85. }
  86. class Instructor implements Person
  87. {
  88.     float fSum = 0f;
  89.     float fBasicSal = 0f;
  90.     int iOutNum = 0;
  91.     int iEveryMon = 0;
  92.     public Instructor()
  93.     {
  94.         super();   
  95.         this.fBasicSal = 1000;
  96.         this.iEveryMon = 30;
  97.     }
  98.     public float pay(int iOutNum)
  99.     {
  100.         return fSum = fBasicSal+iOutNum*iEveryMon;
  101.     }
  102. }
  103. class AssistantProfessor implements Person
  104. {
  105.     float fSum = 0f;
  106.     float fBasicSal = 0f;
  107.     int iOutNum = 0;
  108.     int iEveryMon = 0;
  109.     public AssistantProfessor()
  110.     {
  111.         super();   
  112.         this.fBasicSal = 1200;
  113.         this.iEveryMon = 35;   
  114.     }
  115.    
  116.     public float pay(int iOutNum)
  117.     {
  118.         return fSum = fBasicSal+iOutNum*iEveryMon;

  119.     }
  120. }
  121. class Professor implements Person
  122. {
  123.     float fSum = 0f;
  124.     float fBasicSal = 0f;
  125.     int iOutNum = 0;
  126.     int iEveryMon = 0;
  127.     public Professor()
  128.     {
  129.         super();   
  130.         this.fBasicSal = 1400;
  131.         this.iEveryMon = 40;
  132.     }
  133.     public float pay(int iOutNum)
  134.     {
  135.         return fSum = fBasicSal+iOutNum*iEveryMon;
  136.    
  137.     }
  138. }
复制代码
这是我写的哥们看看能否运行?{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马