1. 程式人生 > >Java 案例十 介面多型案例的實現

Java 案例十 介面多型案例的實現

1.案例介紹

定義USB介面(具備開啟功能、關閉功能),筆記本要使用USB裝置,即筆記本在生產時需要預留可以插入USB裝置的USB介面,即就是筆記本具備使用USB裝置的功能,但具體是什麼USB裝置,筆記本並不關心,只要符合USB規格的裝置都可以。滑鼠和鍵盤要想能在電腦上使用,那麼滑鼠和鍵盤也必須遵守USB規範,不然滑鼠和鍵盤的生產出來無法使用

進行描述筆記本類,實現筆記本使用USB滑鼠、USB鍵盤

  1. USB介面,包含開啟功能、關閉功能
  2. 筆記本類,包含執行功能、關機功能、使用USB裝置功能
  3. 滑鼠類,要符合USB介面
  4. 鍵盤類,要符合USB介面

 2.案例需求分析

 

階段一:使用筆記本,筆記本有執行功能,需要筆記本物件來執行這個功能

階段二:想使用一個滑鼠,又有一個功能使用滑鼠,並多了一個滑鼠物件。

階段三:還想使用一個鍵盤 ,又要多一個功能和一個物件

問題:每多一個功能就需要在筆記本物件中定義一個方法,不爽,程式擴充套件性極差。

降低滑鼠、鍵盤等外圍裝置和膝上型電腦的耦合性。

3.實現程式碼步驟

 

  1. 定義滑鼠、鍵盤,筆記本三者之間應該遵守的規則
    package cn.itcast.demo09;
    /*
     * 	自定義的USB介面類
     * 	規範,就是抽象方法
     * 	開關
     */
    public interface USB {
    	public abstract void open();
    	public abstract void close();
    }
    

     

  2. 滑鼠實現USB規則
    package cn.itcast.demo09;
    /*
     * 自定義的滑鼠類
     * 滿足USB介面規範
     * 實現USB的介面,重寫抽象方法
     */
    public class Mouse implements USB {
    	public void open(){
    		System.out.println("開啟滑鼠");
    	}
    	
    	public void close(){
    		System.out.println("關閉滑鼠");
    	}
    }
    

     

  3. 鍵盤實現USB規則
    package cn.itcast.demo09;
    
    public class KeyBoard implements USB{
    	public void open(){
    		System.out.println("開啟鍵盤");
    	}
    	
    	public void close(){
    		System.out.println("關閉鍵盤");
    	}
    }
    

     

  4. 定義筆記本
    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();
    	}
    }
    

     

  5. 測試類
    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();
    	}
    
    }
    

    執行結果: