Java基礎 第二節 第十六

      網友投稿 757 2022-05-28

      接口多態的綜合案例

      筆記本電腦

      案例分析

      案例分析

      筆記本電腦

      筆記本電腦 ( 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

      Java基礎 第二節 第十六課

      10

      11

      12

      13

      14

      15

      16

      17

      18

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Fat32磁盤結構與數據恢復實驗
      下一篇:win10下,找回老毛桃隱藏啟動分區
      相關文章
      久久亚洲精品无码av| 亚洲国产日韩一区高清在线| 久久亚洲日韩看片无码| 亚洲区日韩区无码区| 亚洲日韩精品无码AV海量| 国产精品亚洲专区在线观看| 亚洲成年人免费网站| 亚洲高清不卡视频| 亚洲国产情侣一区二区三区| 亚洲另类小说图片| 亚洲综合校园春色| 亚洲人成网站999久久久综合| 国产亚洲精品bv在线观看| 亚洲无删减国产精品一区| 99久久精品国产亚洲| 亚洲精品无码久久久久久久| 亚洲国产日产无码精品| 亚洲av无码片区一区二区三区| 久久亚洲精品专区蓝色区| 亚洲中文字幕无码久久2020| 亚洲丁香婷婷综合久久| 亚洲精品动漫免费二区| 国产亚洲视频在线| 亚洲中文字幕伊人久久无码| 亚洲色成人WWW永久网站| 亚洲av女电影网| 亚洲欧洲春色校园另类小说| 亚洲Av高清一区二区三区| 亚洲色大成网站www| 国产亚洲人成在线影院| 国产亚洲精品AA片在线观看不加载| 国产成人综合亚洲亚洲国产第一页| 九月丁香婷婷亚洲综合色| 亚洲国产精品不卡在线电影| 亚洲精品第五页中文字幕| 国产人成亚洲第一网站在线播放| 亚洲AV色无码乱码在线观看| 亚洲精品国精品久久99热 | 精品久久久久久亚洲| 亚洲天堂中文字幕| 亚洲va精品中文字幕|