JAVA-多态应用例子(接口等)
定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,即笔记本在生产时需要预留可以插入USB设备的USB接口,即就是笔记本具备使用USB设备的功能,但具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,不然鼠标和键盘的生产出来无法使用
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
l USB接口,包含开启功能、关闭功能
l 笔记本类,包含运行功能、关机功能、使用USB设备功能
l 鼠标类,要符合USB接口
l 键盘类,要符合USB接口
1、定义USB接口
interface USB { void open();// 开启功能 void close();// 关闭功能 }
2、 鼠标实现USB规则
class Mouse implements USB { public void open() { System.out.println("鼠标开启"); } public void close() { System.out.println("鼠标关闭"); } }
3、键盘实现USB规则
class KeyBoard implements USB { public void open() { System.out.println("键盘开启"); } public void close() { System.out.println("键盘关闭"); } }
4、定义笔记本
class NoteBook { // 笔记本开启运行功能 public void run() { System.out.println("笔记本运行"); } // 笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备 public void useUSB(USB usb) { //这里就是多态 USB usb = new Mouse(); // 判断是否有USB设备 if (usb != null) { usb.open(); usb.close(); } } public void shutDown() { System.out.println("笔记本关闭"); } }
5、运行
public class Test { public static void main(String[] args) { // 创建笔记本实体对象 NoteBook nb = new NoteBook(); // 笔记本开启 nb.run(); // 创建鼠标实体对象 Mouse m = new Mouse(); // 笔记本使用鼠标 nb.useUSB(m); // 创建键盘实体对象 KeyBoard kb = new KeyBoard(); // 笔记本使用键盘 nb.useUSB(kb); // 笔记本关闭 nb.shutDown(); } }