news 2026/4/18 1:59:40

案例 --- 加油站支付小模块(融合继承、多态知识)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
案例 --- 加油站支付小模块(融合继承、多态知识)

案例 — 融合继承、多态

packagecom.itheima.demo;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){//1.创建卡片类,以便创建金卡或者银卡对象,封装车主的数据//2.定义一个卡片父类,Card,定义金卡和银卡的共同属性和方法//3.定义一个金卡类,继承Card类,金卡必须重写消费方法(8折优惠),独有功能打印洗车票//4.定义一个银卡类,继承Card类,金卡必须重写消费方法(9折优惠)//5.办一张金卡,创建金卡对象,交给一个独立的业务(支付机)来完成,存款,消费GoldCardgc=newGoldCard("京A88888","小王","13888888888",5000);pay(gc);//6.办一张银卡,创建金卡对象,交给一个独立的业务(支付机)来完成,存款,消费SilverCardsc=newSilverCard("晋A99999","小张","13899999999",2000);pay(sc);}//支付机,用一个方法来刷卡:既可能接收金卡,也可能接收银卡publicstaticvoidpay(Cardc){System.out.println("请刷卡,请您输入当前消费的金额");Scannersc=newScanner(System.in);doublemoney=sc.nextDouble();c.consume(money);}}//=========================================分割线=========================================packagecom.itheima.demo;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;//lombok可以自动为类实现getter、setter方法 无参数构造器,toSpring方法等@Data//@NoArgsConstructor@AllArgsConstructor//添加有参构造器publicclassCard{privateStringcarId;//车牌号码privateStringname;privateStringphone;privatedoublemoney;//余额//预存金额publicvoiddeposit(doublemoney){this.money+=money;}//消费金额publicvoidconsume(doublemoney){this.money-=money;}}//=========================================分割线=========================================packagecom.itheima.demo;publicclassGoldCardextendsCard{publicGoldCard(StringcarId,Stringname,Stringphone,doublemoney){super(carId,name,phone,money);}@Overridepublicvoidconsume(doublemoney){System.out.println("您当前金卡消费:"+money);System.out.println("优惠后的价格:"+money*0.8);//在金卡子类中,可直接调用父类的getMoney(),而在测试类中则必须使用对象.getMoney()才能引用:gc.getMoney()if(getMoney()<=money*0.8){System.out.println("您余额是:"+getMoney()+",当前余额不足,请存钱");return;//干掉方法}//更新金卡的账户余额setMoney(getMoney()-money*0.8);System.out.println("您当前金卡余额是:"+getMoney());if(money*0.8>=200){printTicket();}else{System.out.println("您当前消费不满200,不能免费洗车");}}//打印洗车票publicvoidprintTicket(){System.out.println("您消费了,请打印洗车票");}}//=========================================分割线=========================================packagecom.itheima.demo;publicclassSilverCardextendsCard{publicSilverCard(StringcarId,Stringname,Stringphone,doublemoney){super(carId,name,phone,money);}@Overridepublicvoidconsume(doublemoney){System.out.println("您当前银卡消费:"+money);System.out.println("优惠后的价格:"+money*0.9);if(getMoney()<=money*0.9){System.out.println("您余额是:"+getMoney()+",当前余额不足,请存钱");return;//干掉方法}//更新银卡的账户余额setMoney(getMoney()-money*0.9);System.out.println("您当前银卡余额是:"+getMoney());}}


ps:
//lombok可以自动为类实现getter、setter方法 无参数构造器,toSpring方法等
@Data//
@NoArgsConstructor
@AllArgsConstructor//添加有参构造器
还需点击以上图片Enable按键

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 21:08:48

Gitee:中国开发者生态的基石与创新引擎

Gitee&#xff1a;中国开发者生态的基石与创新引擎 在全球数字化转型加速的背景下&#xff0c;中国本土开发者正面临着前所未有的机遇与挑战。Gitee作为国内领先的企业级代码托管平台&#xff0c;凭借其独特的本土化优势和创新服务体系&#xff0c;正在重塑中国软件开发行业的协…

作者头像 李华
网站建设 2026/4/7 11:27:27

2025年DevOps平台选型指南:Gitee、Jenkins与CircleCI深度解析

2025年DevOps平台选型指南&#xff1a;Gitee、Jenkins与CircleCI深度解析 随着数字化转型加速&#xff0c;DevOps已成为企业提升研发效能的关键引擎。本文将深度解析三大主流平台的技术特性与适用场景&#xff0c;为不同规模团队提供选型参考。 本土化首选&#xff1a;Gitee De…

作者头像 李华
网站建设 2026/4/16 8:56:10

基于JavaWeb技术的在线考试系统(11551)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/4/10 21:04:00

AI降噪、全链路、自适应的医疗行业数据安全管理最佳实践指南

一、概要&#xff08;提示&#xff1a;医疗数据安全监测的价值&#xff0c;正从“被动合规”转向“全链路、可运营、可持续优化”的治理能力。&#xff09;在医疗数字化全面提速的背景下&#xff0c;数据安全监测已不再是简单的告警工具&#xff0c;而是医疗机构保障患者隐私、…

作者头像 李华
网站建设 2026/4/9 1:07:22

springboot基于Vue在线考试管理系统

基于 SpringBoot Vue 在线考试管理系统介绍 在线考试管理系统是解决传统纸质考试 “组织繁琐、阅卷低效、数据难追踪” 等问题的数字化方案。基于SpringBoot&#xff08;后端&#xff09; Vue&#xff08;前端&#xff09; 的技术架构&#xff0c;该系统能实现从 “题库管理”…

作者头像 李华