我是Java新手,阅读Sun基础教程并看到“在java.lang包中定义的Object类,定义并实现了所有类共有的行为 - 包括你编写的行为。”我想知道如何如果我的类没有从其他类继承,则Object可以是我定义的类的根父。
答案 0 :(得分:10)
如果您继续阅读same page (强调我的):
除了
Object
,它没有超类,每个类都有一个且只有一个直接超类(单继承)。 在没有任何其他显式超类的情况下,每个类都隐式地是Object
的子类。
答案 1 :(得分:4)
这是一种隐含行为。所有类都扩展了Object(直接或不是)。
public class MyClass
相当于public class Myclass extends Object
答案 2 :(得分:2)
这是Java编译器完成的“神奇”:当你写
时public class MyClass {
...
}
Java编译器将其视为
public class MyClass extends java.lang.Object {
...
}
答案 3 :(得分:1)
它的工作原理是因为Java Language Specification (specifically section 8.1.4)这样说:
给出C
1 的一个(可能是通用的)类声明,...,F n > (n≥0,C≠Object),类类型C< F 1 的直接超类,...,F n >如果存在extends子句,则为C声明的 extends
子句中给出的类型,否则为Object
。