Java入门——多态综合案例

案例:

  • 使用面向对象编程模拟:设计一个电脑对象,可以安装2个USB设备
  • 鼠标:被安装时可以完成接入,调用点击功能,拔出功能。
  • 键盘:被安装时可以完成接入,调用打字功能,拨出功能。

 1.定义USB接口:

//USB接口
public interface USB {
    void connect();//接入
    void unconnect();//拔出
}

2. 定义两个USB实现类:键盘和鼠标:

/**
 * 实现类:键盘
 */
public class KeyBoard implements USB {
    private String name;

    public KeyBoard(String name) {
        this.name = name;
    }

    @Override
    public void connect() {
        System.out.println(name + "成功连接电脑。");
    }

    //键盘的独有功能
    public void keyDown(){
        System.out.println(name + "敲击了:。。。。");
    }

    @Override
    public void unconnect() {
        System.out.println(name + "成功从电脑拨出。");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
/**
 * 实现类:鼠标
 */
public class Mouse implements USB {
    private String name;

    public Mouse(String name) {
        this.name = name;
    }

    @Override
    public void connect() {
        System.out.println(name + "成功连接电脑。");
    }

    //键盘的独有功能
    public void dbClick(){
        System.out.println(name + "双击");
    }

    @Override
    public void unconnect() {
        System.out.println(name + "成功从电脑拨出。");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

3. 创建电脑类:

public class Computer {
    private String name;

    public Computer(String name) {
        this.name = name;
    }

    public void start(){
        System.out.println(name + "开机了。");
    }

    //提供安装USB设备的入口
    public void installUSB(USB usb){
        //多态:usb == 可能是键盘可能是鼠标
        usb.connect();
        //独有功能,先判断再强转
        if (usb instanceof KeyBoard){
            KeyBoard k = (KeyBoard) usb;
            k.keyDown();
        }else if (usb instanceof Mouse){
            Mouse m = (Mouse) usb;
            m.dbClick();
        }
        usb.unconnect();

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

4.创建电脑对象和USB设备对象,安装启动:

public class Demo {
    public static void main(String[] args) {
        //a.创建电脑对象
        Computer c = new Computer("外星人");
        c.start();

        //b.创建鼠标,键盘对象
        USB u = new KeyBoard("键盘");
        c.installUSB(u);

        USB u1 = new Mouse("鼠标");
        c.installUSB(u1);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_61275790/article/details/129838961