zoukankan      html  css  js  c++  java
  • Java 接口和多态练习

    我们鼠标和键盘实现USB接口,那么我们鼠标和键盘就变成了USB设备,这时候我们就可以把它放到笔记本电脑里面去用

     1 package com.biggw.day10.demo07;
     2 
     3 /**
     4  * @author gw
     5  * @date 2019/11/2 0002 下午 16:46
     6  */
     7 public class Computer {
     8     public void open() {
     9         System.out.println("打开电脑!");
    10     }
    11 
    12     public void close() {
    13         System.out.println("关闭电脑!");
    14     }
    15 
    16     public void useDevice(Usb usb) {
    17         if (usb instanceof KeyBorad) {
    18             KeyBorad keyBorad = (KeyBorad) usb;
    19             keyBorad.open();
    20             keyBorad.type();
    21             keyBorad.close();
    22         } else if (usb instanceof Mouse) {
    23             Mouse mouse = (Mouse) usb;
    24             mouse.open();
    25             mouse.click();
    26             mouse.close();
    27         }
    28     }
    29 }
    Computer
     1 package com.biggw.day10.demo07;
     2 
     3 /**
     4  * @author gw
     5  * @date 2019/11/2 0002 下午 16:42
     6  */
     7 public interface Usb {
     8     public abstract void open();
     9 
    10     public abstract void close();
    11 }
    Usb 接口
     1 package com.biggw.day10.demo07;
     2 
     3 /**
     4  * @author gw
     5  * @date 2019/11/2 0002 下午 16:44
     6  */
     7 public class Mouse implements Usb {
     8     @Override
     9     public void open() {
    10         System.out.println("打开鼠标!");
    11     }
    12 
    13     @Override
    14     public void close() {
    15         System.out.println("关闭鼠标!");
    16     }
    17 
    18     public void click() {
    19         System.out.println("点击鼠标!");
    20     }
    21 }
    Mouse Usb接口的实现类
     1 package com.biggw.day10.demo07;
     2 
     3 /**
     4  * @author gw
     5  * @date 2019/11/2 0002 下午 16:43
     6  */
     7 public class KeyBorad implements Usb {
     8     @Override
     9     public void open() {
    10         System.out.println("打开键盘!");
    11     }
    12 
    13     @Override
    14     public void close() {
    15         System.out.println("关闭键盘!");
    16     }
    17 
    18     public void type() {
    19         System.out.println("键盘输入文字!");
    20     }
    21 }
    KeyBoard Usb接口的实现类
     1 package com.biggw.day10.demo07;
     2 
     3 /**
     4  * @author gw
     5  * @date 2019/11/2 0002 下午 16:52
     6  */
     7 public class Main {
     8     public static void main(String[] args) {
     9         Usb usb = new KeyBorad();
    10         Usb usb1 = new Mouse();
    11 
    12         Computer computer = new Computer();
    13         computer.open();
    14         computer.useDevice(usb);
    15         computer.useDevice(usb1);
    16         computer.close();
    17 
    18         /*点击鼠标!
    19         打开电脑!
    20         打开键盘!
    21         键盘输入文字!
    22         关闭键盘!
    23         打开鼠标!
    24         关闭鼠标!
    25         关闭电脑!*/
    26     }
    27 }
    Main 方法入口
  • 相关阅读:
    MVP on dot NET Episode 1
    以服务器端为中心的 ASP.NET AJAX 模式 (Part 2 Control)
    以服务器端为中心的 ASP.NET AJAX 模式 (Part 1 Behavior)
    编写 iPhone Friendly 的 Web 应用程序 (Part 6 iUI)
    Vista 为什么要引入 UAC
    Windows 就是一个带 UI 的命令行
    ASP.NET AJAX 4.0 Preview 3 (Part 2 ASP.NET AJAX Template)
    如何订阅MVP on dot NET(或其它播客) iTunes版
    深入理解 ASP.NET 动态控件 (Part 5 编译实验)
    使用 .NET 实现 Ajax 长连接 (Part 2 Mutex Wait & Signal)
  • 原文地址:https://www.cnblogs.com/biggw/p/11782843.html
Copyright © 2011-2022 走看看