day10--接口与多态的笔记本案例
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
package com.inmind.poly_test11;
|
||||||
|
//键盘类,要实现USB接口,具备敲击的方法
|
||||||
|
public class Keyboard implements Usb{
|
||||||
|
@Override
|
||||||
|
public void open() {
|
||||||
|
System.out.println("键盘启动了");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() {
|
||||||
|
System.out.println("键盘关闭了");
|
||||||
|
}
|
||||||
|
|
||||||
|
//具备敲击的方法(独有的功能)
|
||||||
|
public void knock(){
|
||||||
|
System.out.println("敲击键盘,输入了内容");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.inmind.poly_test11;
|
||||||
|
//笔记本类,包含运行功能、关机功能、使用USB设备功能
|
||||||
|
public class Laptop {
|
||||||
|
|
||||||
|
//运行功能、关机功能
|
||||||
|
public void powerOn(){
|
||||||
|
System.out.println("笔记本开机了");
|
||||||
|
};
|
||||||
|
|
||||||
|
public void powerOff(){
|
||||||
|
System.out.println("笔记本关机了");
|
||||||
|
};
|
||||||
|
/*//使用鼠标
|
||||||
|
public void useMouse(Mouse mouse){};
|
||||||
|
//使用键盘
|
||||||
|
public void useKeyboard(Keyboard board){};*/
|
||||||
|
|
||||||
|
//电脑出厂的时候其实不应该知道,以后连接的设备有哪些的,我只预留可以使用usb设备的功能方法
|
||||||
|
//使用USB设备功能
|
||||||
|
public void useUsb(Usb usbDevice){//接口的多态!!!
|
||||||
|
usbDevice.open();
|
||||||
|
//usb设备插上后,要调用独有的功能
|
||||||
|
/*//编译看左边,只能向下转型,转为具体的设备再调用具体的独有功能
|
||||||
|
usbDevice.click();
|
||||||
|
usbDevice.knock();*/
|
||||||
|
if (usbDevice instanceof Keyboard) {
|
||||||
|
Keyboard keyboard = (Keyboard) usbDevice;
|
||||||
|
keyboard.knock();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (usbDevice instanceof Mouse) {
|
||||||
|
Mouse mouse = (Mouse) usbDevice;
|
||||||
|
mouse.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void closeUsb(Usb usbDevice){
|
||||||
|
usbDevice.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.inmind.poly_test11;
|
||||||
|
//鼠标类,要实现USB接口,并具备点击的方法
|
||||||
|
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("鼠标选中了文件夹,双击打开");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.inmind.poly_test11;
|
||||||
|
/*
|
||||||
|
3.1 笔记本电脑
|
||||||
|
笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,
|
||||||
|
但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。
|
||||||
|
定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,
|
||||||
|
实现USB接口,否则鼠标和键盘的生产出来也无法使用。
|
||||||
|
|
||||||
|
3.2 案例分析
|
||||||
|
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
|
||||||
|
USB接口,包含开启功能、关闭功能
|
||||||
|
笔记本类,包含运行功能、关机功能、使用USB设备功能
|
||||||
|
鼠标类,要实现USB接口,并具备点击的方法
|
||||||
|
键盘类,要实现USB接口,具备敲击的方法
|
||||||
|
*/
|
||||||
|
public class Test12 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//1.买一台电脑
|
||||||
|
Laptop laptop = new Laptop();
|
||||||
|
//2.买一个鼠标和键盘
|
||||||
|
Mouse mouse = new Mouse();
|
||||||
|
Keyboard keyboard = new Keyboard();
|
||||||
|
//3.打开电脑,插上鼠标和键盘,进行使用
|
||||||
|
laptop.powerOn();
|
||||||
|
laptop.useUsb(mouse);//接口的多态
|
||||||
|
laptop.useUsb(keyboard);//接口的多态
|
||||||
|
|
||||||
|
//4.电脑关机
|
||||||
|
laptop.closeUsb(mouse);
|
||||||
|
laptop.closeUsb(keyboard);
|
||||||
|
laptop.powerOff();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.inmind.poly_test11;
|
||||||
|
/*
|
||||||
|
USB接口,包含开启功能、关闭功能
|
||||||
|
*/
|
||||||
|
public interface Usb {
|
||||||
|
//Usb起码有打开和关闭设备的功能规范
|
||||||
|
void open();
|
||||||
|
void close();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user