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()); } } } }