我有一个奇怪的Java问题:
我们知道:
java.lang.Object
然后,java.lang.Object
必须扩展java.lang.Object
,因此,它应该是不可能的。如何用Java实现Object?
答案 0 :(得分:20)
Object
是第一个规则的例外,没有超类。来自JLS3 8.1.4:
extends子句不能出现在Object类的定义中,因为它是原始类,没有直接的超类。
您也可以尝试反思:
Object.class.getSuperclass(); // returns null
答案 1 :(得分:1)
你最好不要这样想:
两个要点是:所有类都必须实现隐含的接口,Java语言规范为您提供(强制对你?)这些方法的默认实现。
答案 2 :(得分:0)
对象不会自我扩展。它是Java语言中所有其他对象的超类。可以将其视为Java API树中所有对象的0级(或根)类 - 包括您创建的任何对象。
我还想指出,您发布的规则#2证明您的问题不可能。用于证明你的问题的逻辑只考虑#1,因此存在极大的缺陷。