【问题标题】:Can anyone help me regarding mulitple inheritance in java? [closed]任何人都可以帮助我了解java中的多重继承吗? [关闭]
【发布时间】:2020-11-03 19:56:21
【问题描述】:
  class A{} 
  class B extends A{} 

这是 B 与对象类一起扩展 A 的情况。

  • 我们都知道,在java中,所有的类默认都继承Object类。
  • 但在java中也不允许多重继承。
  • 那么当我们继承一个类时,这条规则会发生什么?

【问题讨论】:

  • 从 Object 继承不是多重继承。这是单继承。
  • 因为你继承的类继承自Object
  • 多重继承是指一个类扩展多个类,而不是一个类扩展一个类进而扩展一个类。
  • 猫继承了哺乳动物,哺乳动物继承了动物。有人可能会说猫继承了哺乳动物,猫也继承了动物,这是真的。不过,这不是多重继承。
  • ArrayList 扩展 AbstractList 扩展 AbstractCollection 扩展 Object。一个单一的继承链。除了 Object 本身之外的所有东西都有一个直接的超类。

标签: java oop object multiple-inheritance


【解决方案1】:

我们都知道,在java中,所有的类默认都继承Object类。

是的。但我怀疑你不明白这意味着什么。

这意味着如果一个类没有声明(通过显式extend)从某个类继承,那么它隐式地从Object继承。

class A {}           // implicitly inherits Object

class B extends A {} // explicitly inherits A

换句话说:

  • AObject 作为其唯一的直接超类
  • BA 作为其唯一的 direct 超类。
  • BObject 作为 indirect 超类。

这是单继承。如果B 具有A Object 作为直接 超类,则多重继承。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2012-11-30
    • 2018-06-03
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多