Java多態淺談

正文面臨Java初學者,我們在教科書上常常會看到Java是多態的,可是通常的教材只停留在理論上,很少有實際操作。現時把多態個概念用代碼簡略描述一下子,因爲本人水準有限,之所以在所難免有不足之處。

第一我們有這麼幾個種,計算機,個人電腦,筆記本電腦。

java 代碼
一.class Computer{
2.
3. public void turnOn(){
4. }
5.}
現下有了計算機這個種,那麼個人PC,筆記簿都是沿襲他。

java 代碼
一.class PC extends Computer{
2. public void turnOn(){
3. System.out.println("PC has turn on");
4. }
5.}
6.
七.class NB extends Computer{
1. public void turnOn(){
2. System.out.println("NB has turn on");
3. }
4.}
我們看到,每個種都有一個 turnOn()步驟,而在父類中這個步驟是空的,子類中各自有不同的兌現,到這邊或者還不太顯然。如果有此外一個步驟,要接受這些類作爲參數,就像這麼

java 代碼
一.class Test{
2. public void go(Computer computer){
3. computer.turnOn();
4. }
5.}
這個步驟接收的是基類參數,當然我們是可以把子類傳接給步驟的,也應當這麼做。

java 代碼
一.go(new PC());
二.go(new NB());
這麼他就會去調器具體子類的turnOn()步驟,之所以這兩次調用的輸出是不一樣的.如若不要基類作爲參數,我們想調用每個兒類的turnOn()步驟,那麼即將些兩個步驟體同樣的go()而接收不同的參數的滿載。

java 代碼
一.public void go(PC computer){
2. computer.turnOn();
3. }
4.
五.public void go(NB computer){
1. computer.turnOn();
2. }
這麼些也是準確的,但是這麼會發生很多反覆代碼,並且也不易維護,當然這只是多態中最基本的一個一部分,Java多態機制再有很多特點,至於這些提議大家夥兒見見 java編程思維(think in java)這此書,裏頭講的很詳細,這邊只是很簡單的描述了一下子,還望個諸位好手不用見笑。

我的異常網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章