Java面向接口编程与多态的示例学习

首先假设一个场景,比如我们是卖手机的,如果顾客来了挑选手机,需要一个个拿不同型号的手机去演示功能

为了简便,我们可以制作一个接口,在接口一端连接手机,另一端控制演示手机的各个功能

手机都有发短信、打电话两个基本功能,我们可以将接口设置为这两个功能

public interface Cellphone
{
	public void phone(long num);

	public void sms(long num, String content);
}


下面的一般手机都可以使用这个接口

 

public class Nokia implements Cellphone
{
	@Override
	public void phone(long number)
	{
		Util.print("nokia phone");
	}

	@Override
	public void sms(long number, String content)
	{
		Util.print("nokia sms");
	}
}

 

public class BlackBerry implements Cellphone
{
	@Override
	public void phone(long number)
	{
		Util.print("BlackBerry phone");
	}

	@Override
	public void sms(long number, String content)
	{
		Util.print("BlackBerry sms");
	}
}


 

Iphone上还可以玩玩游戏

public class Iphone implements Cellphone
{
	@Override
	public void phone(long num)
	{
		Util.print("Iphone phone");
	}

	@Override
	public void sms(long num, String content)
	{
		Util.print("Iphone sms");
	}
	
	public void play()
	{
		Util.print("Iphone play");
	}
}


那么,我们在操作的时候就可以通过接口来演示手机功能

Cellphone cell = new Nokia();
cell.phone(250);


这时,顾客还希望我们演示一下山寨机,可是接口不匹配,怎么办,我们需要制作一个适配器来转换一下

public class Shanzhaiji
{
	public void dadianhua()
	{
		Util.print("shanzhaiji dadianhua jiushiniu");
	}
	
	public void faduanxin()
	{
		Util.print("shanzhaiji faduanxin jiushiniu");
	}
}


 

public class ShanzhaiAdapter implements Cellphone
{
	private Shanzhaiji shanzhai;

	public ShanzhaiAdapter(Shanzhaiji shanzhai)
	{
		this.shanzhai = shanzhai;
	}

	@Override
	public void phone(long num)
	{
		shanzhai.dadianhua();
	}

	@Override
	public void sms(long num, String content)
	{
		shanzhai.faduanxin();
	}
}


通过接口转换,我们也可以演示山寨机了

ShanzhaiAdapter adapter = new ShanzhaiAdapter(new Shanzhaiji());
adapter.phone(0);



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值