java案例--多态思想设计一个电脑对象,可安装2个USB设备

需求:

        1.使用面向对象编程模拟:设计一个电脑对象,可以安装2个USB设备

        2.鼠标被安装时可以完成接入、调用点击功能、拔出功能。

        3.键盘:被安装时可以完成接入、调用打字功能、拔出功能。

分析:

         1.定义一个USB的接口(申明USB设备的规范必须是:可以接入和拔出)。

        2.提供2个USB实现类代表鼠标和键盘,让其实现USB接口,并分别定义独有功能。

        3.创建电脑对象,创建2个USB实现类对象,分别安装到电脑中并触发功能的执行。

        4. 定义测试类检查代码正确与否

1.定义一个USB的接口(申明USB设备的规范必须是:可以接入和拔出)。

package Test.CURRY;

public interface USB {
    public void cutIn();//接入方法
    public void pullOut();//拔出方法
}

2.提供2个USB实现类代表鼠标和键盘,让其实现USB接口,并分别定义独有功能。

package Test.CURRY;

public class keyboard implements USB {

    @Override
    public void cutIn() {
        System.out.println("键盘接入");
    }

    @Override
    public void pullOut() {
        System.out.println("键盘拔出");

    }
    public void type(){
        System.out.println("键盘打字");
    }
}
package Test.CURRY;

public class mouse implements USB {

    @Override
    public void cutIn() {
        System.out.println("鼠标接入");
    }

    @Override
    public void pullOut() {
        System.out.println("鼠标拔出");
    }
    public void click(){
        System.out.println("鼠标点击");
    }
}

3.创建电脑对象,创建2个USB实现类对象,分别安装到电脑中并触发功能的执行。

package Test.CURRY;

public class Computer {

    public void start() {
        System.out.println("电脑开机啦~~");
    }

    public void installUSB(USB u) {
        //1.调用插入功能
        u.cutIn();

        //2.独有功能,先判断真实类型,再进行强转
        if (u instanceof keyboard) {
            keyboard k = (keyboard) u;
            k.type();
        } else if (u instanceof mouse) {
            mouse m = (mouse) u;
            m.click();
        }

        //3.调用拔出功能
        u.pullOut();
    }
}

4. 定义测试类检查代码正确与否

package Test.CURRY;

public class TEST {
    public static void main(String[] args) {
        //1.创建电脑对象
        Computer C=new Computer();
        C.start();

        //2.采用多态特征创建子类对象
        USB u=new keyboard();
        C.installUSB(u);//键盘

        USB u2=new mouse();
        C.installUSB(u2);//鼠标
    }
}




  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值