多态理解

没有用多态:每添加一个水果,就要在Juicer这个类里面添加一个run方法,否则无法调用榨汁这个方法,这样代码扩展性太差,不利于管理,所以我们用多态。
 
 
 
public class Main {

	/**
	 * * 榨汁机(Juicer)榨汁的案例
	 * 分别有水果(Fruit)苹果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze)
	 * @throws IOException 
	 */
	public static void main(String[] args) throws Exception {
		Juicer j = new Juicer();									//创建榨汁机
		j.run(new Apple());
		j.run(new Orange());
	}
}
class Apple{
	public void squeeze() {
		System.out.println("榨出一杯苹果汁儿");
	}
}

class Orange {
	public void squeeze() {
		System.out.println("榨出一杯橘子汁儿");
	}
}

class Juicer {
	public void run(Apple a) {
		a.squeeze();
	}
	
	public void run(Orange o) {
		o.squeeze();
	}
	
}


多态:将每次新定义一个类就要新调用的方法向上抽取,定义一个父类,在jucier函数里只需调用父类的方法,则子类继承父类时同时继承了这个调用,即不用每次新创建一个子类都需要在juicer里面重新定义一遍run方法。


public class Main{

	/**
	 * * 榨汁机(Juicer)榨汁的案例
	 * 分别有水果(Fruit)苹果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze)
	 * @throws IOException 
	 */
	public static void main(String[] args) throws Exception {
		Juicer j = new Juicer();									//创建榨汁机
		
		
j.run(new Apple());
		j.run(new Orange());
}}interface Fruit {public void squeeze();}class Apple implements Fruit {public void squeeze() {System.out.println("榨出一杯苹果汁儿");}}class Orange implements Fruit {public void squeeze() {System.out.println("榨出一杯橘子汁儿");}}class Juicer {public void run(Fruit f) {f.squeeze();}}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值