Java基礎 第二節 第十六課
接口多態的綜合案例
筆記本電腦
案例分析
案例分析
筆記本電腦
筆記本電腦 ( laptop ) 通常具備使用 USB 設備的功能. 在生產時, 筆記本電腦預留了可以插入 USB 設備的 USB 接口. 但具體是什么 USB 設備, 筆記本廠商并不關心, 只要符合 USB 規格的設備都可以.
定義 USB 接口, 具體最基本的開啟功能和關閉功能. 鼠標和鍵盤要想能在電腦上使用, 那么鼠標和鍵盤也必須遵守 USB 規范, 否則鼠標和鍵盤的生產出來也無法使用.
案例分析
進行描述筆記本類, 實現筆記本使用 USB 鼠標, USB 鍵盤
USB 接口, 包含開啟功能, 關閉功能
筆記本類, 包含運行功能, 關機功能, 使用 USB 設備功能
鼠標類, 要實現 USB 接口, 并具備點擊的方法
鍵盤類, 要實現 USB 接口, 具備敲擊的方法
案例分析
定義 USB 接口:
public interface USB { void open(); // 開啟功能 void close(); // 關閉功能 }
1
2
3
4
定義鼠標類:
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("鼠標單擊"); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
定義鍵盤類:
public class KeyBoard implements USB{ @Override public void open() { System.out.println("鍵盤開啟, 綠燈閃一閃"); } @Override public void close() { System.out.println("鍵盤關閉, 綠燈熄滅"); } public void type(){ System.out.println("鍵盤打字"); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
定義筆記本類:
public class Laptop { // 筆記本開啟運行功能 public void run() { System.out.println("筆記本運行"); } // 筆記本使用USB設備, 這時當筆記本對象調用這個功能時, // 必須給傳遞一個符合USB規格的USB設備 public void useUSB(USB usb) { // 判斷是否有USB設備 if (usb != null) { usb.open(); // 類型轉換, 調用特有方法 if (usb instanceof Mouse) { Mouse m = (Mouse) usb; m.click(); } else if (usb instanceof KeyBoard) { KeyBoard kb = (KeyBoard) usb; kb.type(); } usb.close(); } } public void shutDown() { System.out.println("筆記本關閉"); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
測試類:
public class Test4 { public static void main(String[] args) { // 創建筆記本實體對象 Laptop lt = new Laptop(); // 筆記本開啟 lt.run(); // 創建鼠標實體對象 USB u = new Mouse(); // 筆記本使用鼠標 lt.useUSB(u); // 創建鍵盤實體對象 KeyBoard kb = new KeyBoard(); // 筆記本使用鍵盤 lt.useUSB(kb); // 筆記本關閉 lt.shutDown(); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。