java学习案例--子父类模拟银行利息结算

需求:

        活期是0.35%,定期是 1.75%,定期如果满10万额外给予3%的收益。

         结算利息要先进行用户名、密码验证,验证失败直接提示,登录成功进行结算

步骤: 

        1.创建一个抽象的账户类Account作为父类模板,提供属性(余额)

        2.在父类Account中提供一个模板方法实现登录验证,利息结算、利息输出。

        3.具体的利息结算定义成抽象方法,交给子类实现。

        4.定义活期账户类,让子类重写实现具体的结算方法

        5.定义定期账户类,让子类重写实现具体的结算方法

实现代码

1.定义父类模板,模板方法,抽象方法

public abstract class account {

    //1.先定义账户存款
    private double money;

    //2.定义父类模板,方便子类调用
    public final void handle(String username, String passWord) {
        //①判断用户名和密码与先写好的Curry和FMVP是否一样,
        if ("Curry".equals(username) && "FMVP".equals(passWord)) {
            System.out.println("登录成功~~~");

            //②调用抽象方法calculate 计算利息
            double result = calculate(money);

            //③输出利息
            System.out.println("您的利息为:" + result);

        } else {
            System.out.println("登录失败");
        }
    }


    public abstract double calculate(double money);


    //无参构造器
    public account() {
    }

    //有参构造器
    public account(double money) {

        this.money = money;
    }

    //get和set方法

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }
}

 2.定义活期和定期两个子类继承父类

//活期
public class dueOnDemand extends account {

    //子类调用父类的有参构造器
    public  dueOnDemand(double money)
    {
        super(money);
    }

    @Override
    public double calculate(double money) {
        double rsMoney = money * 0.0035;
        return rsMoney;
    }
}


//定期
public class fixedPeriod extends account {

    @Override
    public double calculate(double money) {
        double rsMoney;
        if (money > 100000) {
            rsMoney = money * 0.0475;
        } else {
            rsMoney = money * 0.0175;
        }
        return  rsMoney;
    }
}

3.定义测试类来验证代码正确性

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        //1.创建子类对象,子类对象功能更强大,注意父类不能创建对象
        dueOnDemand due=new dueOnDemand(10000);

        //2.输入用户名和密码
        System.out.println("请输入你的用户名");
        String  putName= sc.next();

        System.out.println("请输入你的密码");
        String putPassWord= sc.next();

        due.handle(putName,putPassWord);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值