java吧 关注:1,254,494贴子:12,744,273
  • 2回复贴,共1

求教,求救

只看楼主收藏回复

/*设计一个人员类(Person),以及从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(AssistantProfesson)和教授类(Professor)。
*四种类型教师的工资收入计算公式如下:
工资收入=基本工资+授课时数×每课时报酬
其中,助教基本工资为800元,每课时报酬25元,讲师基本工资为1000元,每课时报酬35元,副教授基本工资为1200元,每课时报酬40元,教授基本工资为1400元,每课时报酬50元。
将人员类定义为抽象类,具体定义如下:
abstract class Person {
String name;
double salary; //工资收入
int hour; //课时
abstract double countSalary(int hour);//计算工资收入
abstract public String toString();//返回员工的姓名、职称、收入字符串
abstract public boolean equals(Person p);//与另一员工比较职称及工资收入是否一样
}
请为四种类型教师自行设计合理的类,但必须继承自Person类,另编写一个测试类测试你所编写的类,
要求输入两个员工的姓名,职称和授课时数后分别显示他们的姓名、职称、收入,并比较两人职称及工资收入是否一样。
*/
abstract class Person {
String name;
double salary; //工资收入
int hour; //课时
abstract double countSalary(int hour);//计算工资收入
abstract public String toString();//返回员工的姓名、职称、收入字符串
abstract public boolean equals(Person p);//与另一员工比较职称及工资收入是否一样
}
class Assistant extends Person{
double countSalary(int hour){
salary=800+hour*25;
return salary;
}
public String toString(){
return "姓名:"+name+"\n职称:助教"+"\n收入:"+salary;
}
public boolean equals(Person p){
return this.name.equals(p.salary);
}
}
class Instructor extends Person{
double countSalary(int hour){
salary=1000+hour*35;
return salary;
}
public String toString(){
return "姓名:"+name+"\n职称:助教"+"\n收入:"+salary;
}
public boolean equals(Person p){
return this.name.equals(p.salary);
}
}
class AssistantProfesson extends Person{
double countSalary(int hour){
salary=1200+hour*40;
return salary;
}
public String toString(){
return "姓名:"+name+"\n职称:助教"+"\n收入:"+salary;
}
public boolean equals(Person p){
return this.name.equals(p.salary);
}
}
class Professor extends Person{
double countSalary(int hour){
salary=1400+hour*50;
return salary;
}
public String toString(){
return "姓名:"+name+"\n职称:助教"+"\n收入:"+salary;
}
public boolean equals(Person p){
return this.name.equals(p.salary);
}
}public class Test{
public static void main(String args[]){
Person p1;
Person p2;
p1=new Professor();
p1.name="张三";
p2=new AssistantProfesson();
p2.name="李四";
p1.countSalary(10);
p2.countSalary(20);
p1.toString();
p2.toString();
p1.equals(p2);
}
}


IP属地:江苏1楼2014-04-07 22:33回复
    求指出错误,改正并完善


    IP属地:江苏2楼2014-04-07 22:34
    回复
      运行之后什么都不显示,求原因,如何改


      IP属地:江苏3楼2014-04-07 22:35
      回复