2

I'm new on Java, reading the Sun basic tutorial and see "The Object class, defined in the java.lang package, defines and implements behavior common to all classes—including the ones that you write. " I wonder how can Object be the root parent of the class I defined if my class did not inherit from other classes.

4

4 回答 4

10

如果您继续阅读同一页 (强调我的):

除了Object没有超类之外,每个类都有一个且只有一个直接超类(单一继承)。在没有任何其他显式超类的情况下,每个类都是隐式的子类Object

于 2013-04-19T15:45:55.557 回答
4

这是一种隐含的行为。您的所有类都扩展了 Object (直接或不直接)。

public class MyClass相当于public class Myclass extends Object

于 2013-04-19T15:45:54.993 回答
2

这就是 Java 编译器完成的“魔法”:当你编写

public class MyClass {
    ...
}

Java 编译器将其视为

public class MyClass extends java.lang.Object {
    ...
}
于 2013-04-19T15:46:21.043 回答
1

它之所以这样工作,是因为Java 语言规范(特别是第 8.1.4 节)是这样说的:

给定 C<F 1 ,...,F n > (n ≥ 0, C ≠ Object) 的(可能是通用的)类声明,类类型 C<F 1 ,...,F n >的直接超类extends如果存在 extends 子句,则为 C 声明的子句中给出的类型,Object否则。

于 2013-04-19T16:04:35.093 回答