2012-08-10 36 views
1

我使用BlueJ for Mac對java進行編碼。我添加了stdlib.jar庫(來自princeton http://introcs.cs.princeton.edu/java/stdlib/)。在添加這個庫之前,我有自己的類名爲StdDraw.java(我在項目中使用的特定類)並複製/粘貼了代碼。我還調整了一些代碼並添加了一些新的代碼。由於我無法編輯庫代碼,我該如何重寫或擴展庫類以添加其他功能?覆蓋Java中的用戶庫類

+1

你問如何擴展一個類? – gobernador 2012-08-10 21:35:57

回答

0

只需簡單地擴展類,

public MyClass extends ClassFromLib 

確保庫jar文件的類路徑。如果該類的作者聲明它最終表明它不適合繼承子類。那麼最好的選擇是使用委託模式。

我在這個編輯器中編寫了下面的代碼,所以沒有遵守它的承諾,但希望你明白了。

public Myclass { 
    private ClassFromLib cfl = new ClassFromLib(); 

    public void methodA(){ 
     //Do whatever you need here 
     cfl.methodA(); //Doesn't have to be the same name. 
     //Do whatever you need here 
    } 
} 
+0

當我嘗試這個時,它說,「不能延長最終課堂」。 – Vasseurth 2012-08-11 14:36:57

1

由於庫類爲final,所以不能擴展它們。另一種選擇是將它們包裝在自己的課堂中。例如,您可以創建自己的繪圖類,它具有它委派給的實例StdDraw。對於您的許多方法,您可以簡單地調用StdDraw實例的相應方法,或者您可以通過自己實現方法來模擬覆蓋。