【问题标题】:Java Object be super of my class?Java 对象是我班的超级吗?
【发布时间】:2013-04-19 15:44:00
【问题描述】:

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

【问题讨论】:

标签: java object inheritance


【解决方案1】:

如果您继续阅读same page (强调我的):

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

【讨论】:

    【解决方案2】:

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

    public class MyClass 等价于public class Myclass extends Object

    【讨论】:

      【解决方案3】:

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

      public class MyClass {
          ...
      }
      

      Java 编译器将其视为

      public class MyClass extends java.lang.Object {
          ...
      }
      

      【讨论】:

        【解决方案4】:

        之所以如此,是因为Java Language Specification (specifically section 8.1.4) 是这样说的:

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

        【讨论】:

          猜你喜欢
          • 2011-03-19
          • 1970-01-01
          • 2018-05-20
          • 2018-10-27
          • 1970-01-01
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 2021-12-06
          相关资源
          最近更新 更多