2011-06-07 64 views
-1

假設我有這些抽象類:使Java方法一般

class BasicObject { 
    private String name; 
    // getter and setter here 
} 

class BasicObjectExplorer { 
    void explore(BasicObject basicObject) { 
     // now some actions regarding name property 
    } 
} 

現在你已經AdvancedObject擴展延伸BasicObjectExplorer BasicObject和AdvancedObjectExplorer,如何使用仿製藥重複使用基本類的代碼並編寫關於增加新的屬性只是功能到AdvancedObject?

謝謝你的幫助。

+2

爲什麼你需要爲仿製藥?你想要什麼不會簡單的繼承工作? – Marcelo 2011-06-07 13:43:15

+0

這不是什麼泛型。 – 2011-06-07 13:45:32

+1

@Marcelo「當你擁有的只是一把錘子......」 – 2011-06-07 13:45:34

回答

2

如果您要求您的抽象類作爲處理泛型類的類的基礎。

然後

public abstract class AbstractObjectExplorer<T> { 

    void explore(T basicObject) { 
     // now some actions regarding name property 
    } 
} 

public class Foo extends BasicObjectExplorer<String> { 
} 

public class Bar extends BasicObjectExplorer<Double> { 
} 
+0

如果你想讓你的BasicObjectExplorer探索任何對象,那麼它可能更好地命名爲ObjectExplorer。只是一個想法。 – cHao 2011-06-07 13:45:06

+0

會說'... class AbstractObjectExplorer '是正確的嗎? – cHao 2011-06-07 13:48:08

+0

@cHao No No我什麼時候說的;)jk .. – 2011-06-07 13:51:04