Java Object是我班级的超级对象?

时间:2013-04-19 15:44:00

标签: java object inheritance

我是Java新手,阅读Sun基础教程并看到“在java.lang包中定义的Object类,定义并实现了所有类共有的行为 - 包括你编写的行为。”我想知道如何如果我的类没有从其他类继承,则Object可以是我定义的类的根父。

4 个答案:

答案 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