第1关 类的继承
package step1;
import java.util.Scanner;
class Person {
/********** Begin **********/
// 自行设计类的实现
//姓名
private String name;
//性别
private String sex;
//年龄
private int age;
//构造方法
public Person(String name, String sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}
//重写toString()方法
public String toString(){
return name + "," + sex + "," + age;
}
/********** End **********/
}
class Student extends Person {
/********** Begin **********/
// 自行设计类的实现
//学号
private String no;
//入学时间
private String enter;
//专业
private String major;
//构造方法
public Student(String name, String sex, int age, String no, String enter, String major){
super(name, sex, age);
this.no = no;
this.enter = enter;
this.major = major;
}
//重写toString()方法
public String toString(){
return super.toString() + "," + no + "," + enter + "," + major;
}
/********** End **********/
}
class Teacher extends Person {
/********** Begin **********/
// 自行设计类的实现
//职称
private String pro;
//部门
private String department;
//构造方法
public Teacher(String name, String sex, int age, String pro, String department){
super(name, sex, age);
this.pro = pro;
this.department = department;
}
//重写toString()方法
public String toString(){
return super.toString() + "," + pro + "," + department;
}
/********** End **********/
}
public class Lab3_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Student student = new Student(sc.next(), sc.next(), sc.nextInt(), sc.next(), sc.next(), sc.next());
Teacher teacher = new Teacher(sc.next(), sc.next(), sc.nextInt(), sc.next(), sc.next());
System.out.println("学生基本信息为:" + student);
System.out.println("教师的信息为:" + teacher);
sc.close();
}
}
第2关 上转型对象的使用,多态的特性
package step2;
abstract class Employee {
public abstract double earnings();
}
class YearWorker extends Employee {
//重写earnings()方法
/********** Begin **********/
public double earnings() {
return 100000;
}
/********** End **********/
}
class MonthWorker extends Employee {
//重写earnings()方法
/********** Begin **********/
public double earnings() {
return 10000 * 12;
}
/********** End **********/
}
class WeekWorker extends Employee {
//重写earnings()方法
/********** Begin **********/
public double earnings() {
return 5000 * 4 * 12;
}
/********** End **********/
}
class Company {
Employee[] employees;
double salaries = 0;
Company(Employee[] employees) {
this.employees = employees;
}
public double salariesPay() {
salaries = 0;
//计算salaries
/********** Begin **********/
for (Employee employee : employees) {
salaries += employee.earnings();
}
/********** End **********/
return salaries;
}
}
public class HardWork {
public static void main(String[] args) {
Employee[] employees = new Employee[20];
for (int i = 0; i < employees.length; i++) {
if(i%3==0)
employees[i] = new WeekWorker();
else if(i%3==1)
employees[i] = new MonthWorker();
else if(i%3==2)
employees[i] = new YearWorker();
}
Company company = new Company(employees);
System.out.println("公司年工资总额:" + company.salariesPay());
}
}
第3关 接口的使用
package step3;
// 自行设计接口和实现类
/********** Begin **********/
// 定义接口
interface Dis