我使用BlueJ for Mac對java進行編碼。我添加了stdlib.jar庫(來自princeton http://introcs.cs.princeton.edu/java/stdlib/)。在添加這個庫之前,我有自己的類名爲StdDraw.java(我在項目中使用的特定類)並複製/粘貼了代碼。我還調整了一些代碼並添加了一些新的代碼。由於我無法編輯庫代碼,我該如何重寫或擴展庫類以添加其他功能?覆蓋Java中的用戶庫類
1
A
回答
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
實例的相應方法,或者您可以通過自己實現方法來模擬覆蓋。
相關問題
- 1. 覆蓋jar中的java類
- 2. @覆蓋Java的父類
- 3. 覆蓋用戶
- 4. 覆蓋Android庫項目中的類
- 5. 的Java覆蓋
- 6. 覆蓋在Java在Java中
- 7. 覆蓋文件中的Java
- 8. 使用@覆蓋類
- 9. Java基類和子類方法覆蓋
- 10. Java子類加載器覆蓋父類
- 11. 如何覆蓋已覆蓋的類
- 12. 的Java約@覆蓋
- 13. Java FileWriter覆蓋
- 14. 覆蓋在Java
- 15. 覆蓋JFileChooser java
- 16. Android/Java - 覆蓋
- 17. JAVA - 覆蓋
- 18. 邊緣類的Java hashCode()覆蓋
- 19. 覆蓋使用的類
- 20. 覆蓋元類中的__bases__
- 21. 覆蓋子類中的init
- 22. 覆蓋actionscript中的子類
- 23. 覆蓋rails/refinerycms中的類
- 24. 用Java覆蓋樹中的元素
- 25. 覆蓋段分析中的用戶ID
- 26. 覆蓋應用程序中的庫buildConfigFields
- 27. java - 被調用的子類中的覆蓋方法
- 28. 覆蓋類的CGridColumn
- 29. 覆蓋Magento的類
- 30. 覆蓋CSS類?
你問如何擴展一個類? – gobernador 2012-08-10 21:35:57