Java面向对象编程(21)继承的实现❤

继承的实现

我们创建一个会员类(包含电话号,密码,注册名,余额四个属性),创建一个投资人类,一个借款人类,并实现一个简单的充值功能。

我们首先用传统方法实现上述需求:
Member类:

public class Member {
	private String phone;
	private String password;
	public String regName;
	private double amount;
   //get方法
public double getAmount() {
		return amount;
	}
   //set方法
	public void setAmount(double amount) {
	    //this,谁调用了这个方法,this就指代谁。比如Tom调用了这个方法,那this就是Tom。即Tom的账户余额
this.amount = amount;
	}

//我们设置reCharge函数返回一个布尔值。
	public void reCharge(double amount) {
//充值要求大于100小于10000。
		if(amount<100||amount>10000) {
			System.out.println("充值金额需在100-10000元之间");
		}else {
		System.out.print("充值成功!");
        //充值金额+原有金额=当前金额
		this.amount+=amount;
		}
	}
}

Investor类:

//投资人类继承于会员类
public class Investor {
private String phone;
	private String password;
	public String regName;
	private double amount;

public double getAmount() {
		return amount;
	}
	public void setAmount(double amount) {
this.amount = amount;
	}

	public void reCharge(double amount) {
		//充值要求大于100小于10000。
		if(amount<100||amount>10000) {
			System.out.println("充值金额需在100-10000元之间");
		}else {
		System.out.print("充值成功!");
        //充值金额+原有金额=当前金额
		this.amount+=amount;
		}
	}
}

Borrower类:

public class Borrower {
    private String phone;
	private String password;
	public String regName;
	private double amount;

public double getAmount() {
		return amount;
	}
	public void setAmount(double amount) {
this.amount = amount;
	}

	public boolean reCharge(double amount) {
		//充值要求大于100小于10000。
		if(amount<100||amount>10000) {
			System.out.println("充值金额需在100-10000元之间");
		}else {
		System.out.print("充值成功!");
        //充值金额+原有金额=当前金额
		this.amount+=amount;
		}
	}
}

主类:

public class Test02 {

	public static void main(String[] args) {
		// 投资人和借款人也是会员	
		Investor jack = new Investor();//新建一个投资人jack
		jack.setAmount(100500);
		System.out.println("投资人jack原本余额为:"+jack.getAmount());
		jack.invest(10000.05);
		jack.reCharge(500);
		System.out.println("充值后,投资人jack的余额为:"+jack
.getAmount());
		jack.withDraw(1000);
		System.out.println("提现后,投资人jack的余额为:"+jack
.getAmount());
		
		System.out.println();
		Borrower rose = new Borrower();//新建一个借款人rose
		System.out.println("借款人rose原本余额为"+rose.getAmount());
		rose.reCharge(5000);
		System.out.println("借款人rose充值后余额为"+rose.getAmount());
		rose.withDraw(1000.0);
		System.out.println("提现后,借款人rose的余额为:"+rose
.getAmount());
	}

}

我们使用上面的代码已经实现了所需的功能。
但我们会发现其中的子类和父类的代码有着大量的重复,会使得代码冗余。

通过观察我们发现:由于借款人和投资人都属于会员,于是Member类可以作为一个父类,然后借款人类和投资人类继承这个类之后,就具有父类当中的属性和方法,子类就不会存在重复的代码,维护性也提高,代码也更加简洁,提高代码的复用性(复用性主要是可以多次使用,不用再多次写同样的代码)。继承之后的代码:

Member类:

public class Member {
	private String phone;
	private String password;
	public String regName;
	private double amount;

public double getAmount() {
		return amount;
	}
	public void setAmount(double amount) {
this.amount = amount;
	}

	public void reCharge(double amount) {
		if(amount<100||amount>10000) {
			System.out.println("充值金额需在100-10000元之间");
		}else {
		System.out.print("充值成功!");
		this.amount+=amount;
		}
	}
}

Investor类:

public class Investor extends Member {
	public void reCharge(double amount) {
	super.reCharge(amount); //直接调用父类中声明的方法
  }
}

Borrower类:
public class Borrower extends Member{
	public void reCharge(double amount) {
	super.reCharge(amount);
  }
}

主类:

public class Test03 {

	public static void main(String[] args) {
		// 投资人和借款人也是会员	
		Investor jack = new Investor();//新建一个投资人jack
		jack.setAmount(100500);
		System.out.println("投资人jack原本余额为:"+jack.getAmount());
		jack.invest(10000.05);
		jack.reCharge(500);
		System.out.println("充值后,投资人jack的余额为:"+jack
.getAmount());
		jack.withDraw(1000);
		System.out.println("提现后,投资人jack的余额为:"+jack
.getAmount());
		
		System.out.println();
		Borrower rose = new Borrower();//新建一个借款人rose
		System.out.println("借款人rose原本余额为"+rose.getAmount());
		rose.reCharge(5000);
		System.out.println("借款人rose充值后余额为"+rose.getAmount());
		rose.withDraw(1000.0);
		System.out.println("提现后,借款人rose的余额为:"+rose
.getAmount());
	}

}

软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
有意可加Q群 908417285 交流学习。
乾坤未定,你我皆是黑马
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千川Maple

请作者喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值