可以帮助理解java中接口的实现与向上向下转型的一个例子
模拟笔记本电脑USB设备的使用实例
定义一个接口
![第一步,我们先定义一个接口](https://i-blog.csdnimg.cn/blog_migrate/932e3fe0adced7a33b85307bc16c6340.png)
定义一个笔记本电脑类
![然后定义一个笔记本电脑的类](https://i-blog.csdnimg.cn/blog_migrate/32f020ecd152f1657ec32a754bea782f.png)
定义一个鼠标类
![再定义一个鼠标类去实现USB接口](https://i-blog.csdnimg.cn/blog_migrate/898c73f527a64728b56fe8e7ca30727f.png)
定义一个键盘类
![](https://i-blog.csdnimg.cn/blog_migrate/c58591bb0ae0d5f5cf52ba8390897e8e.png)
主要的main方法
![](https://i-blog.csdnimg.cn/blog_migrate/f7a42f1c212fdf3945bfab7e22cbb00d.png)
注意:当实现类向上转型为接口之后,只能使用接口的方法,就不能再调用实现类私有的方法如鼠标点击方法和键盘输入方法
此时需要进行向下转型
注意:向下转型不一定是安全的,为防止出错,必须进行判断,此外,if_else_if_else的判断结构必须成对存在,因为接口可能存在多个实现类,有多种情况出现
程序运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/7e46ea2b499ac5b6772a9229acc9e195.png)
学习笔记,仅供参考