PackageLianxi4; Public Abstract classEmployee {PrivateString name; Private intNumber ; Privatemydate birthday; PublicString GetName () {returnname;} Public voidsetName (String name) { This. Name =name;} Public intGetNumber () {returnNumber ;} Public voidSetnumber (intNumber ) { This. Number =Number ;} Publicmydate Getbirthday () {returnbirthday;} Public voidsetbirthday (mydate birthday) { This. Birthday =birthday;} PublicEmployee (String name,intNumber , mydate birthday) { Super(); This. Name =name; This. Number =Number ; This. Birthday =birthday;} Public Abstract Doubleearnings (); @Override PublicString toString () {return"Birthday=" + birthday.todatestring () + ", name=" + name + ", number=" + number + "]";}}
PackageLianxi4; Public classMyDate {Private intmonth; Private intDay ; Private intYear ; PublicMyDate (intMonthintDayintYear ) { Super(); This. Month =month; This. Day =Day ; This. Year =Year ;} Public intGetMonth () {returnmonth;} Public voidSetmonth (intmonth) { This. Month =month;} Public intGetDay () {returnDay ;} Public voidSetday (intDay ) { This. Day =Day ;} Public intgetYear () {returnYear ;} Public voidSetyear (intYear ) { This. Year =Year ;} PublicString todatestring () {return This. year+ "Year" + This. month+ "Month" + This. day+ "Day";}}
PackageLianxi4; Public classSalariedEmployeeextendsemployee{Private Doublemonthlysalary; PublicSalariedEmployee (String name,intNumber, mydate birthday,Doublemonthlysalary) { Super(Name,number,birthday); This. monthlysalary =Monthlysalary;} @Override Public Doubleearnings () {returnMonthlysalary;} @Override PublicString toString () {return"SalariedEmployee [" +Super. toString () + "monthlysalary=" + monthlysalary + "]";}}
PackageLianxi4;ImportJava.util.Scanner; Public classPayrollsystem { Public Static voidMain (string[] args) {Employee []emps=NewEMPLOYEE[2];//Note that although the employee is an abstract class, it is an array of definitions, not an instantiationEmps[0] =NewSalariedEmployee ("Xiaoming", 1001,NewMyDate (5,3,1990), 4000);//manifestation of polymorphismEMPS[1] =NewHourlyemployee ("Little Red", 1002,NewMyDate (4,12,1993), 20,8); Scanner s=NewScanner (system.in); System.out.println ("Please enter the current month"); intmonth =S.nextint (); for(inti=0;i< emps.length;i++) {System.out.println (emps[i]); if(month==emps[i].getbirthday (). GetMonth ()) {System.out.println ("Increase" +emps[i].getname () + "salary 100 Yuan"); } } }}
Results:
Please enter the current month
4
SalariedEmployee [birthday=1990 May 3, Name= xiaoming, number=1001]monthlysalary=4000.0]
Hourlyemployee [birthday=1993 April 12, Name=, Number=1002]hour=8, wage=20.0]
Increase the small red wage of 100 yuan
Abstract classes of Practice