1 package com.bytezreo.template;
2
3 import java.util.Calendar;
4 import java.util.Scanner;
5
6 /**
7 *
8 * @Description 抽象类 练习
9 * @author Bytezero·zhenglei! Email:420498246@qq.com
10 * @version
11 * @date 下午2:50:49
12 * @
13 *
14 */
15 public class PayrollSystem {
16
17 public static void main(String[] args) {
18
19 //方式一:
20 // Scanner scanner = new Scanner(System.in);
21 // System.out.println("请输入当月的月份:");
22 // int month = scanner.nextInt();
23
24 //方式二
25 Calendar calendar = Calendar.getInstance();
26 int month =calendar.get(Calendar.MONTH); //获取当前的月份
27 System.out.println(month+1); //一月份 0
28
29
30
31
32 Employee[] emps = new Employee[2];
33
34 emps[0] = new SalariedEmployee("Tom", 1002, new MyDate(2000, 3, 15),10000);
35 emps[1] = new HourlyEmployee("jery", 2001, new MyDate(2001,10, 17),60,240);
36
37 for(int i =0; i <emps.length;i++) {
38 System.out.println(emps[i]);
39
40 double salary =emps[i].earnings();
41 System.out.println("月工资为:" + salary);
42
43 if((month+1) == emps[i].getBirthady().getMonth()) {
44 System.out.println("生日快乐!奖励100元");
45 }
46
47
48 }
49
50 }
51 }
 1 package com.bytezreo.template;
2
3 /**
4 *
5 * @Description
6 * @author Bytezero·zhenglei! Email:420498246@qq.com
7 * @version
8 * @date 下午2:23:00
9 * @
10 *
11 */
12 public abstract class Employee {
13 private String name;
14 private int number;
15 private MyDate birthady;
16
17
18 public Employee(String name, int number, MyDate birthady) {
19 super();
20 this.name = name;
21 this.number = number;
22 this.birthady = birthady;
23 }
24
25 public String getName() {
26 return name;
27 }
28
29 public void setName(String name) {
30 this.name = name;
31 }
32
33 public int getNumber() {
34 return number;
35 }
36
37 public void setNumber(int number) {
38 this.number = number;
39 }
40
41 public MyDate getBirthady() {
42 return birthady;
43 }
44
45 public void setBirthady(MyDate birthady) {
46 this.birthady = birthady;
47 }
48
49 public abstract double earnings();
50
51 @Override
52 public String toString() {
53 return "name=" + name + ", number=" + number + ", birthady=" + birthady.toDateString();
54 }
55
56
57
58 }
 1 package com.bytezreo.template;
2
3
4 public class SalariedEmployee extends Employee{
5
6 private double monthlySalary; //月工资
7
8 public SalariedEmployee(String name, int number, MyDate birthady) {
9 super(name, number, birthady);
10
11 }
12
13 public SalariedEmployee(String name, int number, MyDate birthady,double monthlySalary) {
14 super(name, number, birthady);
15 this.monthlySalary = monthlySalary;
16 }
17
18
19 public double getMonthlySalary() {
20 return monthlySalary;
21 }
22
23
24 public void setMonthlySalary(double monthlySalary) {
25 this.monthlySalary = monthlySalary;
26 }
27
28
29 @Override
30 public double earnings() {
31
32 return monthlySalary;
33 }
34
35 public String toString() {
36 return "SalariedEmployee[ " +super.toString()+"]";
37 }
38
39
40
41
42
43 }
 1 package com.bytezreo.template;
2
3
4 public class HourlyEmployee extends Employee {
5
6 private int wage; //每小时的工资
7 private int hour; //月工作的小时数
8
9 public HourlyEmployee(String name, int number, MyDate birthady) {
10 super(name, number, birthady);
11
12 }
13
14 public HourlyEmployee(String name, int number, MyDate birthady,int wage,int hour) {
15 super(name, number, birthady);
16 this.wage = wage;
17 this.hour = hour;
18 }
19
20
21 public int getWage() {
22 return wage;
23 }
24
25 public void setWage(int wage) {
26 this.wage = wage;
27 }
28
29 public int getHour() {
30 return hour;
31 }
32
33 public void setHour(int hour) {
34 this.hour = hour;
35 }
36
37 @Override
38 public double earnings() {
39
40 return wage * hour;
41 }
42
43
44 public String toString() {
45 return "HourlyEmployee[ " +super.toString()+"]";
46 }
47
48 }

Java 抽象类 练习的更多相关文章

  1. java抽象类

    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...

  2. Java接口、Java抽象类、C++抽象类的区别

    由于这三种数据类型都是为了创建类层次结构的顶层构架,且用法有些许相似之处,这里简单区分一下: 接口: 接口用interface关键字定义, 名字一般使用-able形式的形容词. 接口通常定义抽象方法和 ...

  3. java抽象类与接口的区别及用法

    java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...

  4. Java 抽象类与接口总结

    一.为什么要使用抽象类?有什么好处? 抽象类是通用接口.不同的子类可以用不同的方法表示此接口.通用接口建立起一种基本形式,以此表示所有子类的共同部分. 必须覆写父类abstract抽象的方法  含有抽 ...

  5. JAVA抽象类和接口的深入探讨

    Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. ...

  6. java抽象类和接口的区别(转载)

    1.Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用. 如果向一个抽象类里加入 ...

  7. 我对面向对象设计的理解——Java接口和Java抽象类

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  8. 第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  9. Java抽象类和接口的比较

    一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体 ...

  10. Java - 23 Java 抽象类

    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...

随机推荐

  1. 像elementui一样封装自定义按钮

    <template> <div> <button @click.prevent="coverHandler" class="btn-btn& ...

  2. 【Mysql】复合主键的索引

    复合主键在where中使用查询的时候到底走不走索引呢?例如下表: create table index_test ( a int not null, b int not null, c int not ...

  3. 【4】jupyter notebook快速入门、以及常用快捷键使用

    相关文章: [1]Anaconda安装超简洁教程,瞬间学会! [2]Anaconda下:ipython文件的打开方式,Jupyter Notebook中运行.py文件,快速打开ipython文件的方法 ...

  4. Windows安装MongoDB6.0.2

    环境 Windows 10 MongoDB 6.0.2 配置 下载mongodb 下载地址:https://www.mongodb.com/try/download/community 安装 指定目录 ...

  5. javascript按钮通过cookie限制60s后才可以点击

    javascript按钮通过cookie限制60s后才可以点击 1️⃣ 首先创建一个html页面,放入一个按钮 2️⃣ 设置点击按钮的触发函数 一般当点击按钮都会有一些业务需要,在需求结束后,触发sa ...

  6. Azure Data Factory(十二)传参调用 Azure Function

    一,引言 在实际的项目中,Azure Data Factroy 中的 Data Flow 并不能彻底帮我们完成一系列复制逻辑计算, 比如我们需要针对数据集的每一行数据进行判断计算,Data Flow ...

  7. RocketMQ—RocketMQ发送同步、异步、单向、延迟、批量、顺序、批量消息、带标签消息

    RocketMQ-RocketMQ发送同步.异步.单向.延迟.批量.顺序.批量消息.带标签消息 发送同步消息 生产者发送消息,mq进行确认,然后返回给生产者状态.这就是同步消息. 前文demo程序就是 ...

  8. SESSION会话机制解析

    Windows Session(会话)的概念 会话 session 是由代表单个用户登录会话的所有进程和系统对象组成的.其中的对象包括所有的窗口,桌面和windows stations.桌面是特定se ...

  9. Nginx+uwsgi+ssl配置https

    Nginx+uwsgi+ssl配置https 使用原始django,太过于笨重和杂多nginx是一个轻量级的web服务器,在处理静态资源和高并发有优势uwsgi是一个基于python的高效率的协议,处 ...

  10. JS Leetcode 264. 丑数 II 题解分析,当暴力无法暴力,让我们弃武从文了解三指针

    壹 ❀ 引 我在JS Leetcode 263. 丑数 题解分析,来认识有趣的丑数吧一文中记录了简单难度的丑数题,那么这篇题解是它的升级版,题目来自LeetCode264. 丑数 II,题目描述如下: ...