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元

  • 相关阅读:
    [转载]安装SQL Server 2008 R2遇到“...Setup has stopped working.”
    WPF验证错误显示
    说一下我对Mvvm模式的理解
    [转载]C#深拷贝的方法
    Windows Phone 开发(一):入门指南 — 安装开发环境:Windows Phone SDK
    DateTime.ToString() Patterns
    Log4net 根据日志类别保存到不同的文件,并按照日期生成不同文件名称
    使用Visual Studio 2010进行UI自动化测试
    WPF触发器之数据触发器(A)
    Getting The imported project "C:\Program Files\MSBuild\Microsoft\Silverlight for Phone\v4.0\Microsoft.Silverlight..Overrides.targets" was not found
  • 原文地址:https://www.cnblogs.com/yjtm53/p/4141623.html
Copyright © 2011-2022 走看看