java基础 Day05 内部类、Object类、匿名内部类;方法的覆写;抽象类和接口

目录

      • 1. 设计一个工资管理系统,针对两种雇员的工资进行管理:长期合同工、短期小时工;
      • 2. 编写Addition类,该类中应包含一组实现两数相加运算的重载方法。
      • 3. 创建一个Vehicle类并将它声明为抽象类。

1. 设计一个工资管理系统,针对两种雇员的工资进行管理:长期合同工、短期小时工;

合同工的工资按月发放,小时工的工资为每小时工资乘以工作小时数;都是月底结算;
如果当月为雇员生日所在月,则当月加发200元的贺金;

建立一个雇员父类Employee,两种雇员类继承Employee类; 利用循环结构,输出各个雇员对象的工资;
(扩展功能,不必须实现:如果是合同工,则给该员工每月加发当月所有人基本工资和的千分之五做为红利;)

构造方法:
Employee(String name, String employeeId, int year, int month, int day)
SalariedEmployee(String name, String employeeId, int year, int month, int day, double salary)
HourlyEmployee(String name, String employeeId, int year, int month, int day, double wage, double hours)

最后创建一个测试类SalaryManagement,使用前面的三个类,输出下面四个雇员的相关信息;再单独输出每个雇员的类型; 雇员如下:
合同工张三,员工号:111-11-1111,生日:1975年2月5日,工资:2000.00
合同工李四,员工号:222-22-2222,生日:1978年11月25日,工资:2222.00
小时工王五,员工号:333-33-3333,生日:1974年6月24日,每小时工资:20.00, 工作了120小时
小时工赵六,员工号:444-44-4444,生日:1975年8月9日,每小时工资:30.00, 工作了56小时
假设当月为2月份;

Demo01.java

package com.ly.demo05;

import java.util.Scanner;
abstract class Employee{
   
   public String name;
   public String employeeId;
   public int year; 
   public int month;
   public int day;
   public static double allSalary=0.0;//总薪资
   public Employee(String name, String employeeId, int year, int month, int day) {
   
   	super();
   	this.name = name;
   	this.employeeId = employeeId;
   	this.year = year;
   	this.month = month;
   	this.day = day;
   }
   
   
   public String getName() {
   
   	return name;
   }

   public int getMonth() {
   
   	return month;
   }
   
   //获取工资
   public abstract void getSalary(int i);
   
}
class SalariedEmployee extends Employee{
   
   public double salary;
   public SalariedEmployee(String name, String employeeId, int year, int month, int day,double salary) {
   
   	super(name, employeeId, year, month, day);
   	this.salary =salary;
   	allSalary += salary; 
   }
   //合同工第几个月的收入
   public void getSalary(int m){
   
   	
   	if(m == month

你可能感兴趣的:(java基础学习,java,抽象类,接口)