4

可能重复:
不继承 Object 类的类

我想知道Java中的每个类是否都是从 Object 隐式继承的。我正在读一本说不的书,我很困惑。

4

4 回答 4

7

那本书在撒谎。查看 Java API 中的任何类,您会注意到第一个父类实际上是Object.

顺便说一句:那本书到底是什么?

**编辑**

让我们先澄清一件事:

问: 每个 java 类都隐式继承自 Object 类吗?

A:如果您认为该类Object不能有超类“因为它是原始类并且没有直接超类”,那么没有,因此您的书是对的。

但是,如果您认为“该类Object是所有其他类的超类”,并且被排除在问题之外(因为一个类不能继承自身),那么根据定义


根据我对语言及其规范的理解,“所有类和数组类型都继承类的方法Object”应该是字面意思。这意味着创建的每个对象都拥有类中定义的方法Object。由于这个原因,并且由于该类Object没有超类(因为规范中没有超类!),并且由于所有类都继承了这些方法(这些方法在 JVM 创建的任何对象中都可用),那么如果一个类没有显式扩展Object(因为它不是类Object),它本身或虚拟机的超类隐式地这样做。

于 2013-01-06T00:01:56.750 回答
2

引用文档

public class Object 

类对象是类层次结构的根。每个类都有 Object 作为超类。所有对象,包括数组,都实现了这个类的方法。

于 2013-01-06T00:01:41.863 回答
1

如您所见...类继承自Object:

http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html

public final class Class<T>
    extends Object
    implements Serializable, GenericDeclaration, Type, AnnotatedElement

把这本书扔到垃圾箱!!

于 2013-01-06T00:32:52.040 回答
1

这本书在一种情况下可能是正确的。该类Object不扩展Object。但请记住,其他人都会这样做。
请参阅文档。 类对象

于 2013-01-06T00:06:49.440 回答