每个类都隐式地是Object Java的子类

时间:2015-09-22 18:40:34

标签: java

我正在阅读Java继承文档并得到了这一段,但我不是这个意思。任何机构都能解释一下吗?

  

Excepting Object,没有超类,每个类都有一个和   只有一个直接超类(单继承)。在没有任何   其他显式超类,每个类都隐式地是一个子类   对象

被修改

与此问题相关的另一点:

由于Object是超类,当我尝试使用对象引用调用任何类的成员时,NetBeans会向我显示额外的方法列表?所有这些方法都在Object类中声明?

4 个答案:

答案 0 :(得分:1)

这意味着,在java中,Object类是默认情况下所有类的父类。换句话说,它是java的最顶级类或基类。所有其他类都继承Object类的属性。

答案 1 :(得分:0)

这意味着以下两个类是相同的:

class MyClass {
}

class MyClass extends Object {
}

如果类定义未指定extends,则该类隐式扩展Object

答案 2 :(得分:0)

暗示含义 - 的含义虽然没有直接表达。

如果在Java类中应用了同样的东西。考虑有一个名为Test的类。

如果你写

public class Test {....}

这相当于

  public class Test extends Object {....} 

虽然你没有写它,但它等同于它。您无需手动编写扩展Object。内部JVM会将您的类扩展为Object。由于扩展后的部分是您的类,因此Object是您的超类。

但是,

写作时

  public class Test extends BigTest{....} 

现在情况发生了变化。你告诉BigTest是我的父类。这意味着你暗中写道BigTest是我的父母。这里有趣的部分是BigTest是您的直接Parent课程,内部Object也是您的Parent

所以现在你有2个父类。一个是你提到的BigTest,另一个是Object。如果您没有提及任何内容,则只有Object是您的父母。

修改:

当您尝试使用object-reference调用任何类的成员时,这将是您将看到额外的方法列表的原因。这些方法在Object类中声明。

  

为什么java会这样做?这有什么特点?

是。它有好处。主要原因是减少代码重复。

继续阅读.... Why Object as super class in Java ?

答案 3 :(得分:0)

Object类附带JRE,你使用没有它的任何类。 Java这样做,所以你可以引用任何对象,例如

Object o = x;

这是有效的,因为无论x是什么,它都是一个对象。

注意:即使int[]类是Object的子类。