Java-多态与接口综合案例_USB接口设计

多态用一句话概括就是:事物在运行过程中存在不同的状态。。多态的存在有三个前提:
1.要有继承关系
2.子类要重写父类的方法
3.父类引用指向子类对
综合实际应用,我们做出以下总结:

成员变量
编译看左边(父类),运行看左边(父类)

成员方法
编译看左边(父类),运行看右边(子类)。动态绑定

静态方法
编译看左边(父类),运行看左边(父类)。
多态的弊端:多态后不能使用子类特有的属性和方法
接口比较简单就不一一赘述
看看他们的综合案例实现吧!
1、首先定义一个USB接口:
接口中封装了打开设备和关闭设备的抽象方法
相关代码:


public interface USB {
    //打开设备
    public abstract void open();
    //关闭设备
    public abstract void close();
}

2、定义键盘和鼠标类并实现USB接口:
相关代码:
在鼠标类中:重写了USB接口中的打开关闭方法,同时还有自己的特有的点击方法:click()
在键盘类中:同样重写了USB接口中的打开关闭方法,以及他自己的特有方法打字:type()


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("点击鼠标按钮");
    }
}


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("敲击键盘打字");
    }

}

3、笔记本类
在笔记本类中:定义了电脑的开关机方法,注意这是与USB中的打开关闭方法是不同的!同时在笔记本类中还定义了使用设备的方法useDevice(USB usb)传入的是USB的一个实例,在使用设备时,要使用instanceof方法判断该对象是哪个设备的实例从而正确调用设备的特有方法!


public class Laptop {
    //电脑开机方法
    public void powOn(){
        System.out.println("电脑正在开机");
    }
    //电脑关机方法
    public void powOff(){
        System.out.println("电脑正在关机");
    }
    //使用USB
    public void useDevice(USB usb){
        usb.open();
        if (usb instanceof Mouse){

            ((Mouse) usb).click();

        }else if(usb instanceof KeyBoard){
            ((KeyBoard) usb).type();
        }
        usb.close();
    }

}

4、主类:



public class Main {
    public static void main(String[] args) {
        //创建笔记本对象
        Laptop laptop = new Laptop();
        //开机
        laptop.powOn();
        //创建鼠标对象
        Mouse mouse = new Mouse();
        //使用鼠标
        laptop.useDevice(mouse);
        //创建键盘对象
        KeyBoard keyBoard = new KeyBoard();
        //使用键盘
        laptop.useDevice(keyBoard);
        //关机
        laptop.powOff();
    }
}

希望上述内容对您有用
也别忘了点个赞嗷~谢谢支持!

原创文章 23 获赞 8 访问量 1613

猜你喜欢

转载自blog.csdn.net/CSU_hjh/article/details/105892847