2012-02-13 135 views
0

現在我對繼承和類的對象感到困惑。我們可以像繼承一樣使用對象來做同樣的事情。 確定這裏是第一個代碼爲什麼我應該延長課程?

public class MainForm { 
    GUI g = new GUI(); 
    g.show(); 
    g.destroy(); 
} 
class GUI { 
    void show(){ 
     ...... 
    }  
    void destroy(){ 
     ...... 
    } 
} 

現在第二個

public class MainForm extends GUI { 
    //GUI g = new GUI(); 
    void show(); 
    void destroy(); 
} 
class GUI { 
    void show(){ 
     ...... 
    }  
    void destroy(){ 
     ...... 
    } 
} 

兩個代碼做了same.Right?然後 爲什麼我應該使用類的對象來擴展一個類?

+6

你能舉個例子說明你的意思嗎?恕我直言,我不認爲這個問題是非常清楚的... – 2012-02-13 17:04:21

+0

現在我對你的問題感到困惑。 – Bernard 2012-02-13 17:05:19

+0

最有說服力的原因之一是避免代碼重複。 – 2012-02-13 17:07:45

回答

2

當您想要創建父類的多個類而不重複大量邏輯時,通常會使用繼承。我可能有一個名爲Animal的課程,其方法有speak()walk()sleep()。我也可能想要具有Animal的具體實例,如CatDog

而不是單獨實現全部三種這些方法,我可以在Animal寫他們,然後讓我的其他類擴展的動物,使利用者,以及添加特定的類(比如claw()fetch())的任何方法。

好處是減少了代碼重複和更好的「抽象」對象。但是,也有一些缺點,如article指出的那樣。知道什麼時候繼承是有用的,什麼時候沒有繼續是很重要的。

相關問題