栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

系统需求

某加油站推出了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 {

    @Override
    public 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 {
    @Override
    public 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);

    }
}
输出结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008095.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号