B.抽象类的使用 | |||||
| |||||
Description | |||||
先定义一个抽象Teacher类,有求工资的computeSalary抽象方法(返回值为薪酬); 然后定义一个从Teacher派生的教授Professor类,有基本工资5000元,每学时补贴70元;从Teacher派生的副教授ViceProfessor类,有基本工资4500元,每学时补贴60元;从Teacher派生的副教授Lecturer类,有基本工资4000元,每学时补贴50元。他们都有重写的computeSalary抽象方法。 薪酬的计算方法是:基本工资+每学时补贴*时间 要求main方法中至少包含如下代码(这些语句不要求必须放在一起): Teacher t; t=new Professor(r); t=new ViceProfessor(r); t=new Lecturer(r); t.computeSalary(); | |||||
Input | |||||
有N组数据。每组数据由一个字符、一个字符串和一个整型数组成,第一个如何是'P'表示Professor;是'V'表示ViceProfessor;是'L'表示Lecturer。后面跟的是教师名,然后是时间,单位为小时,是整数。 | |||||
Output | |||||
教师的薪酬。参见样例。 | |||||
Sample Input | |||||
P zhansan 20 V lisi 20 L wangwu 20 L aliu 30 | |||||
Sample Output | |||||
zhansan:6400 lisi:5700 wangwu:5000 aliu:5500 |
import java.util.*;
abstract class teacher
{
public abstract int computeSalary();
}
class Professor extends teacher
{
int num;
String name;
public Professor(String name,int num)
{
this.name = name;
this.num = num;
}
public int computeSalary() {
int ans;
ans = 5000+70*num;
return ans;
}
public String getname()
{
return name;
}
}
class ViceProfessor extends teacher
{
int num;
String name;
public ViceProfessor(String name,int num)
{
this.name = name;
this.num = num;
}
public int computeSalary() {
int ans;
ans = 4500+60*num;
return ans;
}
public String getname()
{
return name;
}
}
class Lecturer extends teacher
{
int num;
String name;
public Lecturer(String name,int num)
{
this.name = name;
this.num = num;
}
public int computeSalary() {
int ans;
ans = 4000+50*num;
return ans;
}
public String getname()
{
return name;
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
String s = input.next();
char c = s.charAt(0);
String ss = input.next();
int age = input.nextInt();
teacher tea;
if(c == 'P')
{
tea = new Professor(ss,age);
System.out.printf("%s:%d\n",ss,tea.computeSalary());
}
if(c == 'V')
{
tea = new ViceProfessor(ss,age);
System.out.printf("%s:%d\n",ss,tea.computeSalary());
}
if(c == 'L')
{
tea = new Lecturer(ss,age);
System.out.printf("%s:%d\n",ss,tea.computeSalary());
}
}
}
}