物件導向的思想中,封裝,繼承,多型作為特性會在開發中廣泛應用,乙個健壯的系統除了功能強大以外,它的可擴充套件性應該也很強,多型恰好應用了這個思路。
下面我以楊小聰去某地的方式為例,我們知道首先楊小聰要去某地的話需要駕駛交通工具,那麼我首先定義乙個driver類負責駕駛
public class driver
public void setname(string name)
public void drive(vihecle v)
}
上述name代表駕駛員的名字,drive代表如何駕駛,vihecle代表交通工具,因為我目前還不知道用什麼交通工具,所以我們可以把此類定義為抽象,我們知道所有的交通工具都是可以有駕駛的方法,那麼go就作為乙個抽象方法,我這裡只定義它為抽象方法,沒有具體實現,僅僅把駕駛員的資訊與目的位址當引數傳入。
public abstract class vihecle
既然由駕駛員driver ,駕駛方法drive,駕駛的交通工具vihecle,那麼接下來就需要定義目的位址了address,name代表目的名稱
public class address
public void setname(string name)
public address(string name)
}
接下來我們就可以定義實際交通工具類了,這裡我以汽車car,與飛機plane兩個類為例。這兩個類同時都繼承了交通工具vihecle,那麼我在實際呼叫中就可以不用多次傳值了。
public class car extends vihecle
}
public class plane extends vihecle
}
最後我們可以寫乙個測試類來測試結果
public class test
}
輸出結果:
楊小聰開車去武漢
楊小聰坐飛機去武漢
總結:
其實我們也可以在driver類中按交通工具每個類來定義方法,但是這樣的設計思路不夠靈活每次去還要修改這一層的**。將開車的方式抽象化,我們站在客戶的立場上為他們設計,客戶想要開車我們就將對應車的物件傳入,這樣的方式擴充套件性很強,如果他還想做火車,我們重新定義乙個火車類來繼承vihecle,driver部分我們不需要修改任何邏輯。
多型的三個特性,有繼承,有重寫,有父類的引用指向子類的物件。
Java多型初步
多型 1.多型就是具有表現多種形態的能力和特徵,更專業的說法,同乙個實現介面,使用不同的例項而執行不同的操作。2.子類到父類的轉換 向上轉型 規則 將乙個父類的引用指向乙個子類物件,稱為向上轉型,自動進行型別轉換。此時通過父類引用變數呼叫的方法是子類覆蓋或繼承父類的方法,不是父類的方法。此時通過父類...
Java設計模式學習心得
1.從理解設計的幾大原則開始 1 open close principle 開 程式可拓展,熱插拔形式 閉 禁止對上一版本的程式進行 修改 原則,通常要用到介面達到這種效果。2 liskov substitution principle lsp黎克特制替換原則,任何可以使用基類的地方均可以使用其子類...
Java 網路程式設計 Socket 初步入門
首先是寫乙個服務端,服務端只要實現或者建立serverscoket就行。然後我們就要做乙個死迴圈,讓他不停的接收請求,接收請求之後,他會把每個會話,封閉成乙個socket物件。我們可以在這個物件中,傳送,讀取資訊,與客戶端進行互動。public class socketserver extends ...