zoukankan      html  css  js  c++  java
  • 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);


  • 相关阅读:
    2020-2021-1 20209314《Linux内核原理与分析》第七周作业
    2020-2021-1 20209314《Linux内核原理与分析》第六周作业
    2020-2021-1 20209314《Linux内核原理与分析》第五周作业
    2020-2021-1 20209314《Linux内核原理与分析》第四周作业
    2020-2021-1 20209314《Linux内核原理与分析》第三周作业
    选做题MyOD 20209314
    2020-2021-1 20209314《Linux内核原理与分析》第二周作业
    2020-2021-1 20209322《Linux内核原理与分析》第十二周作业
    2020-2021-1 20209322《Linux内核原理与分析》第十一周作业
    2020-2021-1 20209322《Linux内核原理与分析》第九周作业
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256676.html
Copyright © 2011-2022 走看看