Java中的每个其他类都继承自Object类。
是否可以基于我自己的FastObject
类在Java中添加第二个完全独立的类层次结构?
我这样做的最初目标是创建更小,更快的对象,其功能更少,专为某些算法而设计。但请允许我说清楚,我对这是否是一个“好主意”并不感兴趣。我只是想知道它是否可能;我一直无法找到办法。是否需要更改JVM?新的启动类路径功能?真正的解决方案是忽略Object
并考虑替换java.lang.Class
吗?使用直接Java编译器而不是VM会让我的工作变得更容易吗?
要清楚,我不只是想编辑根Object
类。这可能需要重写整个Java库。我不想替换当前的层次结构,我只想创建一个可以在同一代码中使用的单独的层次结构。
答案 0 :(得分:2)
不,这是不可能的。
所有创建的类都显式或隐式地扩展另一个类。如果您创建一个类并明确定义它所扩展的类,那么它将扩展该类。如果没有,那么它隐含地扩展Object
。没有办法解决这个问题,就像没有办法重载运算符或任何类似的东西一样。这是Java编程语言的基本设计决策。
所有课程都延伸Object
。唯一没有的是原始类型。当然,Object
本身就是例外,它本身并没有扩展。
答案 1 :(得分:1)
您可以通过使用引导类路径来注入自己的Object实现。但是,我认为没有任何方法可以使用Object以外的基础对象。您可以尝试一些字节代码操作,但完全有可能您的修改后的类将被类加载器拒绝。