zoukankan      html  css  js  c++  java
  • java 26.练习

    背景

    前面学习了接口、多态、向上转型、向下转型、instanceof关键字,本节主要是应用这些知识点实现一个小需求。

    需求

    笔记本电脑(laptop)通常具备使用usb设备的功能,在生产时,笔记本都预留了可以插入usb设备的usb接口,但具体时什么usb设备,笔记本厂商并不关心,只要符合usb规格的设备都可以。

    分析

    定义usb接口,具备最基本的开启和关闭功能,鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守usb规范,实现usb接口,否则鼠标和键盘生产出来也无法使用。

    image

    示例代码

    USB.java

    package Demo0929;
    
    
    public interface USB {
    
        public abstract void open();  //打开设备
    
        public abstract void close();  //关闭设备
    
    }
    

    Computer.java

    package Demo0929;
    
    public class Computer {
    
        public void powerOn() {
            System.out.println("开机");
        }
    
        public void powerOff() {
            System.out.println("关机");
        }
    
        public void useDevice(USB usb) {
            usb.open();
    
            if(usb instanceof Mouse){
                Mouse mouse = (Mouse) usb; //向下转型,使用usb设备特有的方法
                mouse.click();
            }else if(usb instanceof KeyBoard){
                KeyBoard kb = (KeyBoard) usb;
                kb.input();
            }
    
            usb.close();
        }
    }
    

    Mouse.java

    package Demo0929;
    
    public class Mouse implements USB {
        @Override
        public void open() {
            System.out.println("打开鼠标");
        }
    
        @Override
        public void close() {
            System.out.println("关闭鼠标");
        }
    
        public void click(){
            System.out.println("鼠标点击");
        }
    }
    

    KeyBoard.java

    package Demo0929;
    
    public class KeyBoard implements USB {
        @Override
        public void open() {
            System.out.println("打开键盘");
        }
    
        @Override
        public void close() {
            System.out.println("关闭键盘");
        }
    
        public void input(){
            System.out.println("键盘输入");
        }
    }
    

    mainDemo.java

    package Demo0929;
    
    import java.security.Key;
    
    public class mainDemo {
        public static void main(String[] args) {
            Computer computer = new Computer();
            computer.powerOn();
    
            //多态写法
            USB useMouse = new Mouse();
            computer.useDevice(useMouse);
    
    
            //不使用多态
            KeyBoard kb = new KeyBoard();
            computer.useDevice(kb);
    
            computer.powerOff();
        }
    }
    

    输出

    开机
    打开鼠标
    鼠标点击
    关闭鼠标
    打开键盘
    键盘输入
    关闭键盘
    关机
    
    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    English,The Da Vinci Code, Chapter 23
    python,meatobject
    English,The Da Vinci Code, Chapter 22
    English,The Da Vinci Code, Chapter 21
    English,The Da Vinci Code, Chapter 20
    English,The Da Vinci Code, Chapter 19
    python,xml,ELement Tree
    English,The Da Vinci Code, Chapter 18
    English,The Da Vinci Code, Chapter 17
    English,The Da Vinci Code, Chapter 16
  • 原文地址:https://www.cnblogs.com/kknote/p/15355051.html
Copyright © 2011-2022 走看看