news 2026/7/20 21:41:50

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

作者头像

张小明

前端开发工程师

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/7/20 19:40:30

Gitee:国产项目管理工具如何助力企业数字化转型

Gitee&#xff1a;国产项目管理工具如何助力企业数字化转型 在全球数字化转型浪潮中&#xff0c;项目管理工具已成为企业提升运营效率的关键基础设施。作为国内领先的代码托管与协作平台&#xff0c;Gitee凭借其深度本土化适配和全流程DevOps支持&#xff0c;正在重塑中国企业团…

作者头像 李华
网站建设 2026/7/21 9:36:46

springboot基于web的智慧社区设计与实现(11555)

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

作者头像 李华