zoukankan      html  css  js  c++  java
  • 抽象类的练习

    package lianxi4;
    
    public abstract class Employee {
      private String name;
      private int number;
      private MyDate birthday;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public MyDate getBirthday() {
        return birthday;
    }
    public void setBirthday(MyDate birthday) {
        this.birthday = birthday;
    }
    public Employee(String name, int number, MyDate birthday) {
        super();
        this.name = name;
        this.number = number;
        this.birthday = birthday;
    }
    public abstract double earnings();
    @Override
    public String toString() {
        return "birthday=" + birthday.toDateString() + ", name=" + name + ", number="
                + number + "]";
    }
    
    }
    package lianxi4;
    
    public class MyDate {
       private int month;
       private int day;
       private int year;
    public MyDate(int month, int day, int year) {
        super();
        this.month = month;
        this.day = day;
        this.year = year;
    }
    
    public int getMonth() {
        return month;
    }
    
    public void setMonth(int month) {
        this.month = month;
    }
    
    public int getDay() {
        return day;
    }
    
    public void setDay(int day) {
        this.day = day;
    }
    
    public int getYear() {
        return year;
    }
    
    public void setYear(int year) {
        this.year = year;
    }
    
    public String toDateString(){
        return this.year+"年"+this.month+"月"+this.day+"日";
    }
    }
    package lianxi4;
    
    public class SalariedEmployee extends Employee{
    private double monthlySalary;
    public SalariedEmployee(String name, int number, MyDate birthday,double monthlySalary){
        super(name,number,birthday);
        this.monthlySalary = monthlySalary;
    }
    @Override
    public double earnings() {
        return monthlySalary;
    }
    @Override
    public String toString() {
        return "SalariedEmployee ["+super.toString()+"monthlySalary=" + monthlySalary + "]";
    }
    
    }
    package lianxi4;
    
    import java.util.Scanner;
    
    public class PayrollSystem {
    
        public static void main(String[] args) {
            Employee []emps = new Employee[2];  //注意,虽然Employee是抽象类,但是是定义数组,不是实例化
            emps[0] = new SalariedEmployee("小明",1001,new MyDate(5,3,1990),4000);//体现多态性
            emps[1] = new HourlyEmployee("小红",1002,new MyDate(4,12,1993),20,8);
            
            Scanner s = new Scanner(System.in);
            System.out.println("请输入当前月份");
            int month = s.nextInt();
            for(int i=0;i< emps.length;i++){
                System.out.println(emps[i]);
                if(month==emps[i].getBirthday().getMonth()){
                    System.out.println("增加"+emps[i].getName()+"工资100元");
                    
                }
            }
    
        }
    
    }

    结果:

    请输入当前月份
    4
    SalariedEmployee [birthday=1990年5月3日, name=小明, number=1001]monthlySalary=4000.0]
    HourlyEmployee [birthday=1993年4月12日, name=小红, number=1002]hour=8, wage=20.0]
    增加小红工资100元

  • 相关阅读:
    ie6,ie7,ie8 css bug兼容解决记录
    Python__基本文件操作
    冒烟测试、α测试、Beta测试、性能测试
    oracle的基本信息查询
    生成AWK快照的方法
    LR11补丁下载地址
    安卓入门程序《发短信》
    安卓按钮添加监听的三种方法
    用视图编辑字符串和与安卓权限
    安卓入门程序《打电话》
  • 原文地址:https://www.cnblogs.com/yjtm53/p/4141623.html
Copyright © 2011-2022 走看看