系统需求

某加油站推出了2种支付卡,一种是预存10000的金卡,后续加油享受8折优惠,

                                            一种是预存5000的银卡 ,后续加油享受8.5折优惠。

 请分别实现2种卡片进入收银系统后的逻辑,卡片需要包含主人名称,余额,支付功能。

分析实现

1.创建一张卡片父类:定义属性包括主人名称、余额、支付功能(具体实现交给子类)

2.创建一张白金卡类:重写支付功能,按照原价的8折计算输出。

3.创建一张银卡类:重写支付功能,按照原价的8.5折计算输出。

实现步骤

1.先创建父类Card,用于子类继承;

public abstract class card {private String name;private double momey;//抽象方法中的形参paymoney是用户本来要支付的价钱public abstract void pay(double paymoney);public String getName() { return name; }public void setName(String name) { this.name = name; }public double getMomey() { return momey; }public void setMomey(double momey) { this.momey = momey; }
}

2.创建子类金卡goldCard

public class goldCard extends card {@Overridepublic void pay(double paymoney) {//1.计算优惠金额double rsmoney = paymoney * 0.8;System.out.println(getName()+"贵宾,您消费前账户余额:" + getMomey());//2.定义变量接收账户余额减去消费金额,然后用set方法更新账余额double lastMoney = getMomey() - rsmoney;setMomey(lastMoney);System.out.println(getName()+"贵宾,您消费后账户余额:" + getMomey());}
}

3.同样的方法创建子类银卡silveraCard 

public class silveraCard extends card {@Overridepublic void pay(double paymoney) {//1.计算优惠金额double rsmoney = paymoney * 0.85;System.out.println(getName()+"贵宾,您消费前账户余额:" + getMomey());//2.定义变量接收账户余额减去消费金额,然后用set方法更新账余额double lastMoney = getMomey() - rsmoney;setMomey(lastMoney);System.out.println(getName()+"贵宾,您消费后账户余额:" + getMomey());}
}

4.创建一个测试类用于查看结果 

public class Test {public static void main(String[] args) {//1.分别创建金卡和银卡对象并存入金额goldCard G = new goldCard();//金卡G.setMomey(10000);G.setName("库里");//2.调用pay方法,模拟加油付钱G.pay(500);silveraCard S = new silveraCard();//银卡S.setMomey(5000);S.setName("汤普森");S.pay(500);}
}

输出结果

java案例--利用抽象类模拟加油站消费相关推荐

  1. 【java案例】:模拟物流快递系统程序设计

    文档下载链接:https://download.csdn.net/download/oxygen23333/86770543 案例题目:         模拟物流快递系统程序设计(面向对象的程序设计) ...

  2. Java案例:利用JDBC连接Oracle数据库

    Java案例:利用JDBC连接Oracle数据库 一.准备工作 1.启动SQL Developer,设置java.exe路径 2.在Oracle SQL Developer里,新建数据库连接 连接名: ...

  3. Java案例:利用JDBC访问SQL Server数据库

    Java案例:利用JDBC访问SQL Server数据库 1.以sa为登录名连接数据库服务器 2.附加选课数据库Xk,如下图所示: 3.启动Eclipse,创建Java项目TestDB

  4. Java 【案例5-3】 模拟用户注册

    [案例5-3] 模拟用户注册 [案例介绍] 1.任务描述 互联网为我们提供了巨大的便利,如微信带给我们的视频.淘宝带给我们便利的购物等,但这些APP都需要有一个账户才可以登录,而账户需要注册可以获取. ...

  5. Java中 利用继承的思想实现动物的分类,将动物分为水生动物和陆生动物,有其动物的属性和特征,又有其属性和特征,编程模拟。

    Java中 利用继承的思想实现动物的分类,将动物分为水生动物和陆生动物,有其动物的属性和特征,又有其属性和特征,编程模拟. 前言 动物在拥有自己本身所具有的特征的同时,还应该具有所在大类所具有的动物特 ...

  6. 【笔记】Java中抽象类的概述、抽象类的特点、案例(抽象类_员工类代码实现)

    文章目录 一.抽象类的概述 二.抽象类的特点 三.案例(抽象类_员工类代码实现) 一.抽象类的概述 案例:抽象类 Test测试类部分代码 package Package1;public class T ...

  7. java案例-实现斗地主游戏案例

    java案例-实现斗地主游戏案例 1.需求分析: 模拟斗地主游戏,利用集合,Map实现斗地主的逻辑,并且可以看分派好的牌 2.具体实现: (1)在牌盒(字符串数组)存储四个花色: String[] c ...

  8. 原型模式及简单Java案例代码实现

    说明:本文是<大话设计模式>的学习记录及结合网上相关信息编写,原书代码例子采用C#编写,本文采用Java稍加改写.如有不当,欢迎指正,共同进步. 1.原型方法模式概述: 原型模式(Patt ...

  9. java案例——字符串反转

    java案例--字符串反转 1.需求: 定义一个方法,实现字符串反转.键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果cba 2.思路: 1.键盘录入一个字符串,用S ...

最新文章

  1. matlab学习第一天
  2. python执行命令并返回结果集_Python接口测试结果集实现封装比较
  3. 从零开始学ios开发(十):Multiview Applications(多个xib之前的切换)
  4. C语言操作符 进阶 (常见错误及细节)
  5. 《Head First设计模式》第七章-适配器模式、外观模式
  6. es 删除重复数据_怎么标识并删除SPSS数据库里的“重复个案”?
  7. CSS3(七) 前端预处理技术(Less、Sass、CoffeeScript)
  8. 【工具】支付宝免费卡校验接口调用及常用银行简称整理
  9. win10配置jdk11
  10. 欧洲机器人实验室盘点
  11. 如何按州跟踪缺席选票
  12. 【软件测试】——软件测试经验总结
  13. 律师向公安部举报称微软黑屏是最大***行为
  14. 开山斧 WEBSHELL管理器 V0.2
  15. 【趣味案例】用Python来做一个屏幕录制工具
  16. dubbo-admin2.5.4监控中心下载
  17. 一文掌握java对内存空间的划分
  18. IDEAidea背景设置
  19. 程序员也要学英语——倒装、强调和省略
  20. linux系统下的rz、sz详解

热门文章

  1. (最详细)小米MIX的Usb调试模式在哪里打开的教程
  2. 企业级KVM虚拟化+oVirt私有云平台建设实践
  3. Windows 上建立虚拟机安装Centos系统并部署 Kubernates 集群
  4. 计算机修复画笔结果分析,《photoshop修复图像瑕疵》教学反思
  5. 亚马逊云怎么增加硬盘_亚马逊云硬盘
  6. bmp图片在arm开发板显示
  7. ansible-galaxy的应用
  8. From GMM to GrabCut
  9. BlackBerry模拟器中文支持
  10. 选一款可以增加幸福感的显示器