zoukankan      html  css  js  c++  java
  • 关于接口和多态的一个综合案例

    定义一个USB接口,该接口有打开设备和关闭设备两个抽象方法,有一个鼠标类和一个键盘类去实现这个接口,

    鼠标有特有的点击击功能,键盘有特有的敲击功能,有一个笔记本电脑去连接这两个设备

    首先定义一个接口

    public interface UsbInterface {
    
        public abstract void turn_on();//打开
    
        public  abstract void turn_off();//关闭
    }
    View Code

    定义一个键盘类去实现接口

    public class Keyboard implements UsbInterface {
    
    
        @Override
        public void turn_on() {
            System.out.println("打开键盘");
        }
    
        @Override
        public void turn_off() {
            System.out.println("关闭键盘");
        }
    
        public void strike(){
            System.out.println("敲击功能实现");
        }
    }
    View Code

    定义一个鼠标类实现接口

    public class Mouse implements UsbInterface  {
    
        @Override
        public void turn_on() {
            System.out.println("打开鼠标");
        }
    
        @Override
        public void turn_off() {
            System.out.println("关闭鼠标");
        }
    
        public void click(){
            System.out.println("点击功能实现");
        }
    }
    View Code

    定义一个电脑类

    public class LittleComputer {
    
        public  void  open(){
            System.out.println("开机");
        }
    
        public void close(){
            System.out.println("关机");
        }
    
        public void useusb(UsbInterface usb){//用USB接口做参数
            if(usb instanceof Mouse){
                Mouse  mouse = (Mouse)  usb;
                mouse.turn_on();
                mouse.click();
            }
    
            if(usb  instanceof Keyboard){
                Keyboard keyboard = (Keyboard) usb;
                keyboard.turn_on();
                keyboard.strike();
            }
        }
        public void useusboff(UsbInterface usb){
            usb.turn_off();
        }
    }
    View Code

    main方法进行测试

     public static void main(String[] args){
            LittleComputer computer = new LittleComputer();
            computer.open();
            computer.useusb(new Mouse());//运用匿名对象
            computer.useusb(new Keyboard());
            computer.useusboff(new Mouse());
            computer.useusboff(new Keyboard());
            computer.close();
        }
    View Code
  • 相关阅读:
    Intellij IDEA +genymotion安装配置
    openssl编译参数选项
    shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出
    linux 系统中 /etc/passwd 和 /etc/shadow文件详解
    linux crypt()函数使用总结
    linux popen()函数使用
    AES加解密所遇问题
    linux 修改密码命令
    linux新增动态库后可执行程序找不到的问题
    inet_addr()和inet_ntoa()使用注意
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/13799213.html
Copyright © 2011-2022 走看看