我使用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. 覆盖Android库项目中的类
- 4. 覆盖库中的drawable
- 5. 如何覆盖已覆盖的类
- 6. Android/Java - 覆盖
- 7. 覆盖在Java
- 8. Java FileWriter覆盖
- 9. 覆盖使用的类
- 10. 覆盖rails/refinerycms中的类
- 11. 覆盖actionscript中的子类
- 12. 覆盖子类中的init
- 13. 覆盖元类中的__bases__
- 14. java - 被调用的子类中的覆盖方法
- 15. 覆盖应用程序中的库buildConfigFields
- 16. 覆盖Magento的类
- 17. 覆盖jre_lib类
- 18. 覆盖SASS类
- 19. Python类覆盖
- 20. Silverlight用户控件覆盖
- 21. 提示用户覆盖
- 22. 用户覆盖input.text值
- 23. 在Java中使用泛型返回类型的覆盖方法
- 24. 混合Java POJOs和GWT覆盖类型
- 25. Java:超类不会覆盖功能
- 26. Android:从库中调用覆盖类的方法
- 27. 覆盖java中超类'超类的方法?
- 28. Java函数覆盖
- 29. Java。覆盖方法
- 30. Java列表覆盖
你问如何扩展一个类? – gobernador 2012-08-10 21:35:57