zoukankan      html  css  js  c++  java
  • java基础---25. 接口多态综合案例

    1 案例

    2 案例分析

    3 代码实现

    • 定义一个接口
    public interface USB {
        public abstract void open();//打开设备
    
        public abstract void close();//关闭设备
    }
    
    • 定义一个电脑类
    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();//关闭设备
        }
    }
    
    • 定义一个实现类:鼠标
    //鼠标就是一种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("鼠标点击");
        }
    }
    
    • 定义一个实现类:键盘
    //键盘就是一种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("键盘输入");
        }
    }
    
    • 使用
    public class DemoMain {
        public static void main(String[] args) {
            //首先创建一个笔记本电脑
            Computer computer = new Computer();
            computer.powerOn();//笔记本电脑开机
    
            //1.
    //        Mouse mouse = new Mouse();
    //        USB usb = mouse;
            //首先进行向上转型   准备一个鼠标供电脑使用
            //上两行代码可以改写为
            USB usbMouse = new Mouse();//多太写法
            //参数要求USB类型,我传递进去的正好就是USB鼠标
            computer.useDevice(usbMouse);
    
            //2.
            //创建一个usb键盘
            Keyboard keyboard = new Keyboard();
            //方法参数是USB类型,传递进去的是实现类对象
            computer.useDevice(keyboard);//正确写法 向上类型转换  类型与数据类型里的自动类型转换
            //使用子类对象、匿名对象也可以
            //computer.useDevice(new Keyboard());//也是正确写法
    
            computer.powerOff();//笔记本电脑关机
        }
    }
    /*
    笔记本电脑开机
    打开鼠标
    鼠标点击
    关闭鼠标
    打开键盘
    键盘输入
    关闭键盘
    笔记本电脑关机
     */
    
  • 相关阅读:
    SCM基础之SCM配置管理计划重要性
    SCM基础之合理设计配置库
    SCM英文术语
    中国歼20隐形战机首飞成功
    SCM基础之过程描述
    SCM基础之基线审核
    SCM基础之组织结构设计
    SCM基础之如何做到配置管理
    配置管理介绍
    软件配置管理的任务
  • 原文地址:https://www.cnblogs.com/deer-cen/p/12248593.html
Copyright © 2011-2022 走看看