Java 抽象类 练习
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 抽象类 练习的更多相关文章
- java抽象类
Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...
- Java接口、Java抽象类、C++抽象类的区别
由于这三种数据类型都是为了创建类层次结构的顶层构架,且用法有些许相似之处,这里简单区分一下: 接口: 接口用interface关键字定义, 名字一般使用-able形式的形容词. 接口通常定义抽象方法和 ...
- java抽象类与接口的区别及用法
java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...
- Java 抽象类与接口总结
一.为什么要使用抽象类?有什么好处? 抽象类是通用接口.不同的子类可以用不同的方法表示此接口.通用接口建立起一种基本形式,以此表示所有子类的共同部分. 必须覆写父类abstract抽象的方法 含有抽 ...
- JAVA抽象类和接口的深入探讨
Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. ...
- java抽象类和接口的区别(转载)
1.Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用. 如果向一个抽象类里加入 ...
- 我对面向对象设计的理解——Java接口和Java抽象类
在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...
- 第十八节:详解Java抽象类和接口的区别
前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...
- Java抽象类和接口的比较
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体 ...
- Java - 23 Java 抽象类
Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...
随机推荐
- 【JS 逆向百例】无限debugger绕过,某政民互动数据逆向
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:某政务服务 ...
- CCFLOW源码解读系列01-----发起流程
1.发起流程 发起流程时主要做了两件事:一是写入业务数据表,二是新建一条审批流程记录. 发起流程的方法 public static Int64 Node_CreateStartNodeWork(str ...
- C# 理解委托与事件(烧水壶例子)
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...
- 微信小程序-页面生命周期
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html
- C++ 通过SQLite实现命令行工具
本文介绍了一个基于 C++.SQLite 和 Boost 库的简单交互式数据库操作 Shell.该 Shell 允许用户通过命令行输入执行各种数据库操作,包括添加.删除主机信息,设置主机到特定主机组, ...
- LyScript 实现应用层钩子扫描器
Capstone 是一个轻量级的多平台.多架构的反汇编框架,该模块支持目前所有通用操作系统,反汇编架构几乎全部支持,本篇文章将运用LyScript插件结合Capstone反汇编引擎实现一个钩子扫描器. ...
- 基于volcano实现节点真实负载感知调度
本文分享自华为云社区<基于volcano实现节点真实负载感知调度>,作者: 可以交个朋友. 背景 默认调度器调度器视某个节点的空闲可调度资源=节点可分配资源 - SUM(节点上已调度Pod ...
- P5309 [Ynoi2011] 初始化 题解
题目链接:初始化 这种 ynoi 的老题就是卡常.来简单说说这题的思维切入口. 看到形如 \(y+k \times x\) 的结构,自然而然思考一下如果我们是暴力更新会有怎么样的效果.我们容易发现,如 ...
- idea启动springboot项目报错java.lang.ClassNotFoundException: com.gctl.bpm.GctlBpmApplication解决方案
有时候父子工程改造springboot项目时会报错java.lang.ClassNotFoundException: com.gctl.bpm.GctlBpmApplication如下图所示 此时不要 ...
- Go 之烧脑的接口
基本定义 Go 官方对于接口的定义是一句话:An interface type is defined as a set of method signatures. 翻译过来就是,一个接口定义了一组方法 ...