Java 案例十 介面多型案例的實現
阿新 • • 發佈:2019-01-14
1.案例介紹
定義USB介面(具備開啟功能、關閉功能),筆記本要使用USB裝置,即筆記本在生產時需要預留可以插入USB裝置的USB介面,即就是筆記本具備使用USB裝置的功能,但具體是什麼USB裝置,筆記本並不關心,只要符合USB規格的裝置都可以。滑鼠和鍵盤要想能在電腦上使用,那麼滑鼠和鍵盤也必須遵守USB規範,不然滑鼠和鍵盤的生產出來無法使用
進行描述筆記本類,實現筆記本使用USB滑鼠、USB鍵盤
- USB介面,包含開啟功能、關閉功能
- 筆記本類,包含執行功能、關機功能、使用USB裝置功能
- 滑鼠類,要符合USB介面
- 鍵盤類,要符合USB介面
2.案例需求分析
階段一:使用筆記本,筆記本有執行功能,需要筆記本物件來執行這個功能
階段二:想使用一個滑鼠,又有一個功能使用滑鼠,並多了一個滑鼠物件。
階段三:還想使用一個鍵盤 ,又要多一個功能和一個物件
問題:每多一個功能就需要在筆記本物件中定義一個方法,不爽,程式擴充套件性極差。
降低滑鼠、鍵盤等外圍裝置和膝上型電腦的耦合性。
3.實現程式碼步驟
- 定義滑鼠、鍵盤,筆記本三者之間應該遵守的規則
package cn.itcast.demo09; /* * 自定義的USB介面類 * 規範,就是抽象方法 * 開關 */ public interface USB { public abstract void open(); public abstract void close(); }
- 滑鼠實現USB規則
package cn.itcast.demo09; /* * 自定義的滑鼠類 * 滿足USB介面規範 * 實現USB的介面,重寫抽象方法 */ public class Mouse implements USB { public void open(){ System.out.println("開啟滑鼠"); } public void close(){ System.out.println("關閉滑鼠"); } }
- 鍵盤實現USB規則
package cn.itcast.demo09; public class KeyBoard implements USB{ public void open(){ System.out.println("開啟鍵盤"); } public void close(){ System.out.println("關閉鍵盤"); } }
- 定義筆記本
package cn.itcast.demo09; /* * 定義好的筆記本類 * 功能:開機,關機,使用USB裝置 * */ public class Computer { public void openComputer(){ System.out.println("筆記本開機"); } public void closeComputer(){ System.out.println("筆記本關機"); } //使用USB裝置方法,那個裝置? //方法的引數,就是USB裝置 public void useUSB(USB usb){ usb.open(); usb.close(); } }
- 測試類
package cn.itcast.demo09; public class Test { public static void main(String[] args) { //建立筆記本物件,呼叫筆記本的功能 Computer com = new Computer(); com.openComputer(); //呼叫筆記本使用USB裝置的方法 //引數,是USB介面型別,介面不能建立物件 //呼叫方法,傳遞USB介面的實現類的物件 Mouse m = new Mouse(); com.useUSB(m); //使用USB裝置,使用鍵盤 com.useUSB(new KeyBoard()); com.closeComputer(); } }
執行結果: