每个java类都有根类是Object类。我可以更改我自己班级的班级和地点吗class MyObject extends Object
?它有更多的功能。
这件事是可能的???
不,这是不可能的。这甚至不是编译器问题。java.lang.Object
作为继承层次的根是语言定义甚至VM规范的一个非常基本的事实。
不,这是不可能的。Java 中的所有对象都必须派生自java.lang.Object
.
如果您想为系统中的每个对象添加功能,那么我将只介绍您自己的MyObject
类并确保您的所有类都派生自该类。如果您想将功能扩展到现有对象,那么我将使用静态辅助方法来执行此操作(在 C# 中您将使用扩展方法,但在 Java 中不存在这样的选项)。
我从来没有听说过这样的事情。你为什么想要?这将使您的代码无法被除您之外的任何人遵循。每个 Java 程序员都假设要么显式扩展一个类,要么扩展 Object。
在你的课程开始时投入“扩展 MyObject”真的有那么多工作吗?我很确定 Eclipse(和其他 IDE)可以配置为自动为您插入它。
Beside that this seems a questionable approach to me -
you can use bytecode instrumentation to archive this
(but this is not done at compile-time but at vminit/classload time - depending on the type of instrumentation used).