Java之实验(继承&super)

在这里插入图片描述
在这里插入图片描述
Account类

package com.atguigu.exer1;

public class Account {
	private int id;
	private double balance;
	private double annualInterestRate;//年利率
	
	public Account() {
		super();
	}
	public Account(int id, double balance, double annualInterestRate) {
		super();
		this.id = id;
		this.balance = balance;
		this.annualInterestRate = annualInterestRate;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
	public double getAnnualInterestRate() {
		return annualInterestRate;
	}
	public void setAnnualInterestRate(double annualInterestRate) {
		this.annualInterestRate = annualInterestRate;
	}
	//月利率
	public double getMonthlyIneterest() {
		return annualInterestRate / 12;
	}
	//取钱
	public void withdraw(double amount) {
		if(balance < amount) {
			System.out.println("余额不足!");
		}else {
			balance -= amount;
		}
	}
	//存钱
	public void deposit(double amount) {
		balance += amount;
	}
}

CheckAccount类

package com.atguigu.exer1;

public class CheckAccount extends Account{
	private double overdraft;//可透支额度
	
	public CheckAccount() {
		super();
	}

	public CheckAccount(int id,double balance,double annualInterestRate,double overdraft) {
		super(id,balance,annualInterestRate);
		this.overdraft = overdraft;
	}
	public void withdraw(double amount) {
		if(getBalance() >= amount) {
			super.withdraw(amount);
			System.out.println("取款成功");
			System.out.println("目前账户余额有" + getBalance());
			System.out.println("您的透支额度还剩:" + overdraft);
		}else if(amount < (overdraft + getBalance())) {
			overdraft = (overdraft + getBalance() - amount);
			setBalance(0);
			System.out.println("您的透支额度还剩:" + overdraft);
			System.out.println("目前账户余额为" + getBalance());
			setBalance(0);
		}else {
			System.out.println("您的透支额度已限额");
			System.out.println("您目前的透支额度还有" + overdraft);
			System.out.println("目前账户余额有" + getBalance());
			System.out.println("您目前最多能取走的金额为" + (overdraft + getBalance()));
		}
	}
}

Accout和CheackAccount的测试类

package com.atguigu.exer1;

public class AccountTest {
	public static void main(String[] args) {
		Account acc = new Account(1122, 20000, 0.045);
		acc.withdraw(30000);
		System.out.println("您的账户余额为" + acc.getBalance());
		acc.deposit(3000);
		acc.withdraw(2500);
		System.out.println("\n您的账户余额为" + acc.getBalance());
		System.out.println("月利率为" + acc.getMonthlyIneterest() * 100 + "%");
		
		System.out.println("*************************");
		CheckAccount ca = new CheckAccount(1122, 20000, 0.045, 5000);
		ca.withdraw(5000);
		System.out.println("\n");
		ca.withdraw(18000);
		System.out.println("\n");
		ca.withdraw(3000);
	}
}

调试结果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值