java 多型 實戰分析
- java多型的理解
- 編程思路
- 上代碼
java多型的理解
核心理解:不同的物件實作(implements)同一個介面來完成不同的行為,文字舉例:筆記本電腦都有USB介面,滑鼠和鍵盤都可以通過USB介面與電腦連接,那么這里滑鼠點擊和鍵盤輸入就是多型的體現,
編程思路
1.首先完成USB介面的撰寫,—>對應框架中的interface
2.鍵盤和滑鼠通過implements USB介面完成不同的行為(方法),—>對應框架中的serviceImp
3.電腦來控制完成鍵盤和滑鼠的行為,—>對應框架中的controller
4.列印日志,—>log
上代碼
1.撰寫USB介面類代碼片.
/**
* USB介面類
* @author yqq
*/
public interface Usb {
//插入usb
void open();
//拔出usb
void close();
}
/**
* 滑鼠類 implements USB 來完成滑鼠的行為
* @author yqq
*/
public class Mouse implements Usb {
public void open() {
System.out.println("滑鼠插入");
}
public void close() {
System.out.println("滑鼠拔出");
}
public void getClick(){
System.out.println("滑鼠點擊");
}
}
/**
* 鍵盤類 implements USB 完成鍵盤的行為
* @author yqq
*/
public class Keyboard implements Usb{
public void open() {
System.out.println("鍵盤打開");
}
public void close() {
System.out.println("鍵盤關閉");
}
public void getClick(){
System.out.println("鍵盤輸入");
}
}
/**
* 電腦類 控制滑鼠和鍵盤完成不同的行為
*/
public class Computer {
public void open(){
System.out.println("筆記本開機");
}
public void close(){
System.out.println("筆記本關機");
}
//定義筆記本接入USB介面 usb作為形參
public void getUsb(Usb usb){
usb.open();
if (usb instanceof Mouse){
Mouse mouse = (Mouse) usb;
mouse.getClick();
}else if (usb instanceof Keyboard){
Keyboard keyboard = (Keyboard) usb;
keyboard.getClick();
}
}
}
/**
* oop多型測驗類
* @author yqq
*/
public class Test {
public static void main(String[] args) {
Computer computer = new Computer();
computer.open();
Mouse mouse = new Mouse();
computer.getUsb(mouse);
mouse.close();
Keyboard keyboard = new Keyboard();
computer.getUsb(keyboard);
keyboard.close();
computer.close();
}
}
2.執行main方法,列印日志,
筆記本開機
滑鼠插入
滑鼠點擊
滑鼠拔出
鍵盤打開
鍵盤輸入
鍵盤關閉
筆記本關機
Process finished with exit code 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264480.html
標籤:其他
下一篇:p != np,這次真的被證明了
