news 2026/9/22 2:09:35

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

作者头像

张小明

前端开发工程师

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/9/21 5:37:10

数据结构 —— 顺序表

本文讨论使用c语言实现数据结构中的顺序表。什么是顺序表&#xff1f;我们熟悉的数组就是一种顺序表。顺序表中的逻辑上相邻的元素在物理内存中也是连续存放的。简单说就是元素顺着表一个个地挨着往下放。顺序表能方便地访问元素我们知道数组中是有下标的。我们可以利用下标访问…

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

基于springboot的大创管理系统(11549)

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

作者头像 李华
网站建设 2026/9/21 3:10:19

springboot基于安卓的老年养护与智能服务系统

基于 SpringBoot 安卓的老年养护与智能服务系统介绍 随着人口老龄化加剧&#xff0c;传统老年养护模式&#xff08;如子女照料、养老院集中看护&#xff09;面临 “人力不足、响应滞后、个性化服务难实现” 等问题。基于SpringBoot&#xff08;后端&#xff09; 安卓&#xf…

作者头像 李华
网站建设 2026/9/21 15:14:10

EasyGBS助力智慧医院打造全方位视频监控联网服务体系

一、项目背景在数字化转型浪潮的推动下&#xff0c;医疗行业正朝着智能化、信息化的方向加速迈进。智慧医院作为医疗数字化的重要体现&#xff0c;旨在利用先进的信息技术提升医疗服务质量、优化医院管理效率&#xff0c;保障医院安全运营。然而&#xff0c;传统医院监控系统存…

作者头像 李华
网站建设 2026/9/21 18:32:24

Java多态——Java的三大特性之一,零基础小白到精通,收藏这篇就够了

文章目录 一、什么是多态二、重写 2.1、重写的规则 三、多态的实现条件四、向上转型五、向下转型六、动态绑定七、使用多态的优缺点 7.1、优点7.2、缺点 八、避免在构造方法中调用重写的方法 一、什么是多态 Java多态是面向对象编程的一个重要特性&#xff0c;它允许不同的对…

作者头像 李华