2

每个java类都有根类是Object类。我可以更改我自己班级的班级和地点吗class MyObject extends Object?它有更多的功能。

这件事是可能的???

4

4 回答 4

5

不,这是不可能的。这甚至不是编译器问题。java.lang.Object作为继承层次的根是语言定义甚至VM规范的一个非常基本的事实。

于 2012-05-04T12:05:19.903 回答
3

不,这是不可能的。Java 中的所有对象都必须派生自java.lang.Object.

如果您想为系统中的每个对象添加功能,那么我将只介绍您自己的MyObject类并确保您的所有类都派生自该类。如果您想将功能扩展到现有对象,那么我将使用静态辅助方法来执行此操作(在 C# 中您将使用扩展方法,但在 Java 中不存在这样的选项)。

于 2012-05-04T12:05:00.890 回答
2

我从来没有听说过这样的事情。你为什么想要?这将使您的代码无法被除您之外的任何人遵循。每个 Java 程序员都假设要么显式扩展一个类,要么扩展 Object。

在你的课程开始时投入“扩展 MyObject”真的有那么多工作吗?我很确定 Eclipse(和其他 IDE)可以配置为自动为您插入它。

于 2012-05-04T12:08:29.610 回答
1

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).

于 2012-05-04T12:40:04.383 回答