在java中,Object类是所有类的超类.所以假设,如果我从A继承B类,即A - > B,那么它不像多重继承吗?
Object->A \
B
Object /
Run Code Online (Sandbox Code Playgroud)
Java不支持多重继承,对吧?那怎么可能呢?那不会产生钻石依赖问题吗?
如果问题太天真,请道歉.
在[J] ava中,
Objectclass是所有类的超类.
您对此声明的理解不正确.Object是任何类的层次结构的根,但它不是所有类的直接1超类.实际上,Object只是明确派生Object或未明确列出另一个超类的类的直接超类.否则,它位于层次结构链的较高位置.所以,每个类(除了Object)都有一个且只有一个直接的超类,而超类是其中一个类Object或其他类,但如果你按照类的继承链工作,最终你会命中Object(这就是我们的意思)Object是每个班级的超级班级.
因此,假设,如果我继承类
B从A,即A- >B,则它不喜欢多重继承?
然后在这种情况下,层次结构B派生自A派生Object.层次结构不是 A派生自Object和B派生A自的Object.然而,Object是根B的分层结构,因为它是为层次的根任何类.
Java不支持多重继承,对吧?
正确.
那怎么可能呢?
您的问题基于错误的理解.再次,Object是不是该直接超类中的每个类的.多重继承意味着不止一个直接超类,并且在Java中严格禁止,但与每个类Object的超类(但不一定是直接超类)一致.
1:有些人也使用术语"立即"作为任何级别的直接超级类.Java文档使用"direct",因此我们将在此处使用该术语.