设为首页 加入收藏

TOP

实验三 Java类的继承与派生(一)
2023-07-25 21:23:38 】 浏览:32
Tags:Java

第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
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ConcurrentHashMap源码,看我这篇.. 下一篇spring框架_常见工厂后处理器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目