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);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值