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 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...
随机推荐
- 【小实验】使用 wrk 的 docker 容器来压测另一个容器
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 GET 请求 想压测容器环境的服务性能,发现两个麻烦: 本 ...
- 【验证码逆向专栏】数美验证码全家桶逆向分析以及 AST 获取动态参数
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...
- [置顶] Gin--Begoo框架快速指南
Gin篇 第一篇: Gin-官方文档 第二篇: Gin-安装,修改启动端口,get/post 请求参数,模型绑定shouldbind,自定义验证器/表单验证 第三篇: Gin-上传文件/返回前端.中间 ...
- 压缩软件 WinRAR 去广告
别去中国的那个代理网站下载 去国外的官网下载英文版或者湾湾版的, 这样用网上的rarreg.key文件方式就没有广告了, 不然中国的就是有广告. 这里是湾湾版的链接: https://pan.baid ...
- iphone(ios)不同设备的内存和游戏不闪退峰值
ios内存限制 不同内存的苹果机型上(1G,2G,3G,4G-),游戏内存的峰值一般最高多少能保证不闪退? 一般来讲最保险的就是不超过机器总内存的50%,具体每个机型的内存限制在列出在下面. 原贴:& ...
- 深入理解TF-IDF、BM25算法与BM25变种:揭秘信息检索的核心原理与应用
深入理解TF-IDF.BM25算法与BM25变种:揭秘信息检索的核心原理与应用 1.文本特征表示方法: TF-IDF 在信息检索, 文本挖掘和自然语言处理领域, IF-IDF 这个名字, 从它在 20 ...
- python快速入门【二】----常见的数据结构
python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...
- 5、后端学习规划:.Net学习 - 学习规划系列文章
.Net是微软发布的一整套的软件编程解决方案.笔者从大学的时代开始就阅读.netframework的书籍了,但是当时没有进行实践.毕业后,笔者去了微软技术中心的公司上班,所以就接触了.net以及C#编 ...
- Visual Studio 2022 企业版 离线包 下载
今天安装了Visual Studio 2022 企业版工具,觉得改进还是有一定的,下面提供下载及序列号: 链接:https://pan.baidu.com/s/1qvzg8WtsgaCxrD3M4Y0 ...
- css 修改复选框的样式
效果图: 实现代码如下: /* 选中input标签类型为复选框的 */ input[type="checkbox"] { width: 16px; height: 16px; ve ...