zoukankan      html  css  js  c++  java
  • Java_接口使用2

    1. 接口使用

    1.1 定义一个USB接口

    package cn.itcast.day10.demo07;
    
    public interface USB {
    
        public abstract void open(); // 打开设备
    
        public abstract void close(); // 关闭设备
    
    }
    

    1.2 键盘

    package cn.itcast.day10.demo07;
    
    // 键盘就是一个USB设备
    public class Keyboard implements USB {
        @Override
        public void open() {
            System.out.println("打开键盘");
        }
    
        @Override
        public void close() {
            System.out.println("关闭键盘");
        }
    
        public void type() {
            System.out.println("键盘输入");
        }
    }
    

    1.3 鼠标

    package cn.itcast.day10.demo07;
    
    // 鼠标就是一个USB设备
    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("鼠标点击");
        }
    }
    

    1.4 电脑

    package cn.itcast.day10.demo07;
    
    public class Computer {
    
        public void powerOn() {
            System.out.println("笔记本电脑开机");
        }
    
        public void powerOff() {
            System.out.println("笔记本电脑关机");
        }
    
        // 使用USB设备的方法,使用接口作为方法的参数
        public void useDevice(USB usb) {
            usb.open(); // 打开设备
            if (usb instanceof Mouse) { // 一定要先判断
                Mouse mouse = (Mouse) usb; // 向下转型
                mouse.click();
            } else if (usb instanceof Keyboard) { // 先判断
                Keyboard keyboard = (Keyboard) usb; // 向下转型
                keyboard.type();
            }
            usb.close(); // 关闭设备
        }
    
    }
    

    1.5 示例

    package cn.itcast.day10.demo07;
    
    public class DemoMain {
    
        public static void main(String[] args) {
            // 首先创建一个笔记本电脑
            Computer computer = new Computer();
            computer.powerOn();
    
            // 准备一个鼠标,供电脑使用
    //        Mouse mouse = new Mouse();
            // 首先进行向上转型
            USB usbMouse = new Mouse(); // 多态写法
            // 参数是USB类型,我正好传递进去的就是USB鼠标
            computer.useDevice(usbMouse);
    
            // 创建一个USB键盘
            Keyboard keyboard = new Keyboard(); // 没有使用多态写法
            // 方法参数是USB类型,传递进去的是实现类对象
            computer.useDevice(keyboard); // 正确写法!也发生了向上转型
            // 使用子类对象,匿名对象,也可以
    //        computer.useDevice(new Keyboard()); // 也是正确写法
    
            computer.powerOff();
            System.out.println("==================");
    
            method(10.0); // 正确写法,double --> double
            method(20); // 正确写法,int --> double
            int a = 30;
            method(a); // 正确写法,int --> double
        }
    
        public static void method(double num) {
            System.out.println(num);
        }
    
    }
    

      

  • 相关阅读:
    docker
    opencart
    Why is setTimeout(fn, 0) sometimes useful?
    linux下php环境配置
    xampp for linux
    Where to go from here
    freefcw/hustoj Install Guide
    khan academy js
    SDWebImage
    基于OpenCV 的iOS开发
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12595681.html
Copyright © 2011-2022 走看看