每个java类的根类都是Object类。我能改变自己班级class MyObject extends Object
的班级和地点吗?它有更多的功能。
这件事有可能???
答案 0 :(得分:5)
不,这是不可能的。它甚至不是编译器问题。 java.lang.Object
作为继承层次结构的根是语言定义甚至VM规范的一个非常基本的事实。
答案 1 :(得分:3)
不,这是不可能的。 Java中的所有对象都必须来自java.lang.Object
。
如果您想为系统中的每个对象添加功能,那么我将介绍您自己的MyObject
类,并确保您的所有类都来自此类。如果要将功能扩展到现有对象,那么我将使用静态帮助器方法来执行此操作(在C#中,您使用扩展方法,但Java中不存在此类选项)。
答案 2 :(得分:3)
我从来没有听说过这样的事情。你为什么想要?除了你之外,任何人都无法遵循你的代码。每个Java程序员都假设您明确地扩展了一个类,或者扩展了Object。
在课程开始时加入“扩展MyObject”真的需要做多少工作?我很确定可以将Eclipse(和其他IDE)配置为自动为您插入它。
答案 3 :(得分:1)
除此之外,这对我来说似乎是一个值得怀疑的方法 -
您可以使用bytecode instrumentation对此进行归档
(但这不是在编译时完成的,而是在vminit / classload时间 - 取决于所使用的工具类型)。