美文网首页
多态和接口的小案例

多态和接口的小案例

作者: xin激流勇进 | 来源:发表于2019-04-06 11:39 被阅读0次
package test02.multiint;

public interface USB {
    public abstract void open();
    public abstract void close();
}

package test02.multiint;

import test02.multiint.USB;

public class Mouse implements USB {
    @Override
    public void open() {
        System.out.println("mouse is open");
    }

    public void use() {
        System.out.println("mouse is using");
    }

    @Override
    public void close() {
        System.out.println("mouse is close");
    }
}

package test02.multiint;

import test02.multiint.USB;

public class KeyBoard implements USB {
    @Override
    public void open() {
        System.out.println("KeyBoard is open");
    }

    public void use() {
        System.out.println("KeyBoard is using");
    }

    @Override
    public void close() {
        System.out.println("KeyBoard is close");
    }
}

package test02.multiint;

public class Computer {
    public void powerOn() {
        System.out.println("Computer is on");
    }

    public void useDevise(USB usb) {
        usb.open();

        if (usb instanceof Mouse) {
            Mouse mouse = (Mouse) usb;
            mouse.use();
        }

        if (usb instanceof KeyBoard) {
            KeyBoard keyBoard = (KeyBoard) usb;
            keyBoard.use();
        }

        usb.close();
    }

    public void powerOff() {
        System.out.println("Computer is off");
    }
}

package test02.multiint;

public class TestMain {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.powerOn();

        /*普通写法
        Mouse mouse = new Mouse();
        KeyBoard keyBoard = new KeyBoard();

        computer.useDevise(mouse);
        computer.useDevise(keyBoard);
        */

        //使用向上转型的方法

        USB mouse = new Mouse();
        USB keyBoard = new KeyBoard();

        computer.useDevise(mouse);
        computer.useDevise(keyBoard);

        computer.powerOff();
    }
}

相关文章

  • 多态和接口的小案例

  • 接口和多态

  • 学生管理系统之项目分析

    第一部分 案例描述 案例目的 学习面向对象的主要特征和基本概念,包括类、对象、继承、接口、封装、继承、多态、方法的...

  • 【Effective C++(7)】模板与泛型编程

    41 了解隐式接口和编译期多态 OOP总是通过显式接口和运行期多态解决问题,如函数doProcessing内的w类...

  • Java基础-day12-接口

    接口 1. 接口 1.1 接口使用操作 2. 多态 2.1 动物园 2.2 USB接口 2.3 多态总结

  • 关于类的重写多态

    我们知道,面向对象三大特性里,封装、继承和多态里,多态是最复杂的。多态的实现方式分为接口、重写Override和重...

  • JAVAOOP  多态和接口

    1. 面向对象三大特征就是:封装,继承,多态,其中多态是OOP中最核心的一个特征。 2. 为什么要用多态呢,举个...

  • 接口、继承和多态

    1、super 这是一个和父类相关的关键字,在构造函数中调用父类构造函数、调用父类的方法或者成员变量都要用到它。 ...

  • 《Java8学习笔记》读书笔记(八)

    第7章 接口与多态 学习目标 使用接口定义 了解接口的多态操作 利用接口枚举常数 利用enum枚举常数 7.1 ...

  • 接口和多态的使用

    一.接口的使用 接口(interface):用于处理继承单一的局限性;接口中的所有方法都是抽象方法;接口与了类的关...

网友评论

      本文标题:多态和接口的小案例

      本文链接:https://www.haomeiwen.com/subject/hjhriqtx.html