构建单独的Java类层次结构

时间:2012-09-19 19:55:42

标签: java object hierarchy class-hierarchy

Java中的每个其他类都继承自Object类。

是否可以基于我自己的FastObject类在Java中添加第二个完全独立的类层次结构?

我这样做的最初目标是创建更小,更快的对象,其功能更少,专为某些算法而设计。但请允许我说清楚,我对这是否是一个“好主意”并不感兴趣。我只是想知道它是否可能;我一直无法找到办法。是否需要更改JVM?新的启动类路径功能?真正的解决方案是忽略Object并考虑替换java.lang.Class吗?使用直接Java编译器而不是VM会让我的工作变得更容易吗?

要清楚,我不只是想编辑根Object类。这可能需要重写整个Java库。我不想替换当前的层次结构,我只想创建一个可以在同一代码中使用的单独的层次结构。

2 个答案:

答案 0 :(得分:2)

不,这是不可能的。

所有创建的类都显式或隐式地扩展另一个类。如果您创建一个类并明确定义它所扩展的类,那么它将扩展该类。如果没有,那么它隐含地扩展Object。没有办法解决这个问题,就像没有办法重载运算符或任何类似的东西一样。这是Java编程语言的基本设计决策。

所有课程都延伸Object。唯一没有的是原始类型。当然,Object本身就是例外,它本身并没有扩展。

答案 1 :(得分:1)

您可以通过使用引导类路径来注入自己的Object实现。但是,我认为没有任何方法可以使用Object以外的基础对象。您可以尝试一些字节代码操作,但完全有可能您的修改后的类将被类加载器拒绝。