Java面向接口编程小例子

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

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

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

  1. public interface Cellphone  
  2. {  
  3.     public void phone(long num);  
  4.   
  5.     public void sms(long num, String content);  
  6. }  


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

  1. public class Nokia implements Cellphone  
  2. {  
  3.     @Override  
  4.     public void phone(long number)  
  5.     {  
  6.         Util.print("nokia phone");  
  7.     }  
  8.   
  9.     @Override  
  10.     public void sms(long number, String content)  
  11.     {  
  12.         Util.print("nokia sms");  
  13.     }  
  14. }  
  1. public class BlackBerry implements Cellphone  
  2. {  
  3.     @Override  
  4.     public void phone(long number)  
  5.     {  
  6.         Util.print("BlackBerry phone");  
  7.     }  
  8.   
  9.     @Override  
  10.     public void sms(long number, String content)  
  11.     {  
  12.         Util.print("BlackBerry sms");  
  13.     }  
  14. }  


 

Iphone上还可以玩玩游戏

  1. public class Iphone implements Cellphone  
  2. {  
  3.     @Override  
  4.     public void phone(long num)  
  5.     {  
  6.         Util.print("Iphone phone");  
  7.     }  
  8.   
  9.     @Override  
  10.     public void sms(long num, String content)  
  11.     {  
  12.         Util.print("Iphone sms");  
  13.     }  
  14.       
  15.     public void play()  
  16.     {  
  17.         Util.print("Iphone play");  
  18.     }  
  19. }  


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

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


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

  1. public class Shanzhaiji  
  2. {  
  3.     public void dadianhua()  
  4.     {  
  5.         Util.print("shanzhaiji dadianhua jiushiniu");  
  6.     }  
  7.       
  8.     public void faduanxin()  
  9.     {  
  10.         Util.print("shanzhaiji faduanxin jiushiniu");  
  11.     }  
  12. }  


 

  1. public class ShanzhaiAdapter implements Cellphone  
  2. {  
  3.     private Shanzhaiji shanzhai;  
  4.   
  5.     public ShanzhaiAdapter(Shanzhaiji shanzhai)  
  6.     {  
  7.         this.shanzhai = shanzhai;  
  8.     }  
  9.   
  10.     @Override  
  11.     public void phone(long num)  
  12.     {  
  13.         shanzhai.dadianhua();  
  14.     }  
  15.   
  16.     @Override  
  17.     public void sms(long num, String content)  
  18.     {  
  19.         shanzhai.faduanxin();  
  20.     }  
  21. }  


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

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


原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256676.html