【问题标题】:How can a class inherit from Object class and another explicit super class? [duplicate]一个类如何从 Object 类和另一个显式超类继承? [复制]
【发布时间】:2017-11-01 09:02:54
【问题描述】:

我知道 Java 不支持多重继承。 Java 中的每个类都继承自 java.lang.Object 类。在没有任何其他显式超类的情况下,每个类都隐含地是java.lang.Object 类的子类。

那么当Java不支持多重继承时,一个类怎么可能继承java.lang.Object和另一个显式超类呢?

例如

class MySuperClass {
 //this is the explicit super class
}
class MySubClass extends MySuperClass {
// this is the subclass
}

当 Java 不支持多重继承时,MySubClass 如何继承 java.lang.ObjectMySuperClass

【问题讨论】:

  • 不允许多重继承意味着你不能做class A extends B, Cclass A extends Bclass B extends C 但是完全没问题。那只是分层继承而不是多重继承。
  • 可以这样想:你可以继承你父亲的长相——也可以继承你祖父的长相(因为那是通过你的父亲)。但这不是多重继承。但是,您不能也继承马路对面那个人的外观,因为那是多重继承。
  • 感谢您的快速回归 :-)

标签: java inheritance


【解决方案1】:

A 扩展 B.

B 扩展了 C。

所以 A 隐式地扩展了 C。将 C 重命名为 Object,谜题就解决了。这就是任何类最终派生自 Object 的方式。

【讨论】:

    【解决方案2】:

    你自己说过,Java中所有的类都继承自

    java.lang.Object

    因此,您的超类 (MySuperClass) 继承自它,您的子类也是如此 (我的子类)

    Object <-- MySuperClass <-- MySubClass
    

    不允许多重继承是另一个概念,就像拥有

    MySubClass extends MySuperClassA, MySuperClassB
    

    在 Java 中,这将通过接口完成!!

    【讨论】:

      猜你喜欢
      • 2014-11-22
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多