電腦判斷USB設備

USB接口
/*
創建usb接口
接口類:1.接口本身就是個抽象類的集合,所以里面的方法都是抽象方法即使你省略了
關鍵字abstract,Java默認會給你加上abstract
2.接口中有默認方法和默認靜態方法
默認方法:使用 default 修飾,不可省略,供子類調用或者子類重寫。
靜態方法:使用 static 修飾,供接口直接調用。
3.接口中有私有方法和私有靜態方法
私有方法:private 返回值類型 方法名稱(){方法體}
私有方法只能在本類中調用
靜態方法:private static void 方法名稱(){方法體}
private static只能被本類中的方法(可以是非靜態的)調用
4.接口的成員變量其實是常量,格式:[public] [static] [final] 數據類型 常量名稱 = 數據值;
注意:
常量必須進行賦值,而且一旦賦值不能改變。
常量名稱完全大寫,用下划線進行分隔。
5.一個接口能繼承另一個或者多個接口,
*/
public interface Usb {
//打開接口方法省略了public abstract
void open();
//關閉接口方法
public abstract void close();
}
電腦類
/*
創建電腦類 ,因為電腦不是usb設備,它提供了usb接口
*/
public class Computer {
public void powerOn() {
System.out.println("電腦開機");
}
public void powerOff() {
System.out.println("電腦關機");
}
//創建方法
public void userUsbDevice(Usb usb) {
usb.open();//電腦開機
//判斷usb接口類型
if (usb instanceof Mouse) {
//接口類型是Mouse鼠標,向下轉型
//格式 子類類型 變量名 = (子類類型) 父類變量名;
Mouse mouse = (Mouse) usb;
//調用子類方法
mouse.addMouse();
} else if (usb instanceof KeyWord) {
//接口類型是KeyWord鼠標,向下轉型
//格式 子類類型 變量名 = (子類類型) 父類變量名;
KeyWord keyWord = (KeyWord) usb;
keyWord.useKeyWrod();
}
usb.close();
}
}
設備類1
/*
鍵盤是usb設備,創建鍵盤對象繼承usb接口
*/
public class Mouse implements Usb {
@Override
public void open() {
System.out.println("打開鼠標");
}
public void addMouse() {
System.out.println("點擊鼠標");
}
@Override
public void close() {
System.out.println("關閉鼠標");
}
}
設備類2
/*
鍵盤是usb設備,創建鍵盤對象繼承usb接口
*/
public class KeyWord implements Usb {
@Override
public void open() {
System.out.println("打開鍵盤");
}
public void useKeyWrod() {
System.out.println("鍵盤輸入");
}
@Override
public void close() {
System.out.println("關閉鍵盤");
}
}
設備類n
參考設備類1和2,並增加內容在判斷接口類方法中
測試類
/*
創建測試類
知識點 ;1.多態轉型:意義就是父類能訪問到子類的方法,子類能訪問到父類的方法
多態向上轉型 多態本身是子類類型向父類類型向上轉換的過程
多態向下轉型 多態本身是父類類型向子類類型向下轉換的過程
2.多態的代碼當中,成員方法的訪問規則是:
看new的是誰,就優先用誰,沒有則向上找。
記憶:編譯看左邊,運行看右邊。
成員變量:編譯看左邊,運行還看左邊。
成員方法:編譯看左邊,運行看右邊。
*/
public class DemoTest {
public static void main(String[] args) {
//創建電腦對象
Computer computer = new Computer();
computer.powerOn(); //調用電腦類方法
//創建使用鼠標對象 從上轉型
Usb useMouse = new Mouse(); //多態寫法 格式 父類名稱 變量名 = new 子類類型();
//調用電腦類中的usb接口方法,將上面的變量對象作為參數傳過去進行判斷
computer.userUsbDevice(useMouse);
//創建鍵盤對象
KeyWord keyWord = new KeyWord(); //不是多態寫法,依舊能將其向上轉型
//調用電腦類中的usb接口方法,將上面的變量對象作為參數傳過去進行判斷
computer.userUsbDevice(keyWord);
computer.powerOff();
}
}
