模拟USB设备接入电脑
1.首先建立一个名为“USB”的抽象类
public abstract class USB {public abstract void On();public abstract void Off();
}
这是一个抽象类USB,表示一个USB设备。 该类有两个抽象方法On()和Off(),分别表示打开和关闭USB设备。 由于USB是一个抽象类,不能直接实例化,需要通过继承该类来实现具体的USB设备。子类需要实现On()和Off()方法,来实现具体的打开和关闭USB设备的操作。
2.创建“Keyboard”和“Mouse”类继承“USB”类
public class Keyboard extends USB{@Overridepublic void On() {System.out.println("键盘已连接...");}@Overridepublic void Off() {System.out.println("键盘已断开...");}void Inputting(){System.out.println("键盘正在输入...");}
}
这是一个名为Keyboard的类,它继承了USB抽象类。 Keyboard类重写了父类USB中的On()和Off()方法,并实现了一个名为Inputting()的方法。 在Keyboard类中,当调用On()方法时,会打印出"键盘已连接..."的消息;当调用Off()方法时,会打印出"键盘已断开..."的消息。 此外,Keyboard类还定义了一个Inputting()方法,用于表示键盘正在输入。 因此,Keyboard类代表了一个键盘设备,具有连接、断开和输入的功能。
public class Mouse extends USB{@Overridepublic void On() {System.out.println("鼠标已连接...");}@Overridepublic void Off() {System.out.println("鼠标已断开...");}void LeftClick(){System.out.println("鼠标左键已点击...");}void RightClick(){System.out.println("鼠标右键已点击...");}}
这是一个名为Mouse的类,它继承了USB抽象类。 Mouse类重写了父类USB中的On()和Off()方法,并实现了两个额外的方法:LeftClick()和RightClick()。 在Mouse类中,当调用On()方法时,会打印出"鼠标已连接..."的消息;当调用Off()方法时,会打印出"鼠标已断开..."的消息。 此外,Mouse类还定义了两个点击方法:LeftClick()表示鼠标左键点击,RightClick()表示鼠标右键点击。 因此,Mouse类代表了一个鼠标设备,具有连接、断开和点击的功能。
3.创建“Computer”类
public class Computer {void On(){System.out.println("电脑已开机...");}void Off(){System.out.println("电脑已关机...");}public void useDevice(USB dev){dev.On();if(dev instanceof Keyboard){((Keyboard)dev).Inputting();}else if(dev instanceof Mouse) {((Mouse) dev).LeftClick();((Mouse) dev).RightClick();}dev.Off();}
}
这是一个名为Computer的类,它表示一台电脑。 Computer类有两个方法:On()和Off(),表示电脑的开机和关机操作。 Computer类还有一个useDevice方法,用来使用USB设备。 在useDevice方法中,首先调用了USB设备的On()方法,表示连接设备。 然后使用了类型检查和类型转换的机制,判断传入的USB设备是Keyboard还是Mouse。 如果是Keyboard设备,则调用Keyboard类独有的Inputting()方法,表示键盘正在输入。 如果是Mouse设备,则调用Mouse类独有的LeftClick()和RightClick()方法,表示鼠标左键和右键点击。 最后,调用USB设备的Off()方法,表示断开设备。 通过这样的设计,Computer类实现了对USB设备的使用,并根据不同的设备类型执行不同的操作。
4.主方法
public class Run {public static void main(String[] args) {Computer computer = new Computer();computer.On();computer.useDevice(new Keyboard());computer.useDevice(new Mouse());computer.Off();}
}
这是一个名为Run的类,其中包含了主方法main。 在主方法中,首先创建了一个Computer对象computer。 然后调用了computer的On()方法,表示电脑已经开机。 接着使用了computer的useDevice方法,传入了一个Keyboard对象,表示连接了一个键盘设备。 在useDevice方法中,会先调用键盘的On()方法,然后执行键盘的Inputting()方法,表示键盘正在输入, 最后调用键盘的Off()方法,表示断开键盘设备。 接下来又使用了computer的useDevice方法,传入了一个Mouse对象,表示连接了一个鼠标设备。 在useDevice方法中,会先调用鼠标的On()方法,然后执行鼠标的LeftClick()和RightClick()方法,表示鼠标进行了左键和右键点击操作, 最后调用鼠标的Off()方法,表示断开鼠标设备。 最后,调用了computer的Off()方法,表示电脑已经关机。 通过这样的设计,Run类展示了如何使用Computer类来操作USB设备,并打印出相应的连接和断开信息。
运行结果