2015-05-11 165 views
-2

我有以下類層次結構爪哇抽象方法覆蓋

abstract class A { 
    public abstract void M(); 
} 

class B extends A { 
    public void M() { 
    //some stuff 
    } 
} 

甲OBJ =新B();

現在我想寫一個新的類C中的方法M的實現,使得調用obj.M()應該在類C中執行我的新實現?我該怎麼辦? 順便說一句,我不能改變一個obj = new C();

+4

而你的問題是...? – Ray

+5

您將需要指定該引用實際上是一個C.實例= new C(); – Stultuske

+1

閱讀關於繼承,重載和重載....你會沒事的...... – ha9u63ar

回答

0

解釋你的問題作爲「我應該如何組織我的代碼,這樣我可以改變的實施obj是否指的是從執行B到實現C,在不改變A obj = new B();A obj = new C();(因爲我不想做每當我想使用不同的實現時都會發生同樣的變化)。「

在這種情況下,請查看concept of factories