java和Superclasses(Object,Class)中的继承

Car*_*zer 10 java class object multiple-inheritance

是否java.lang.Object隐式继承了所有自定义类/对象的超类?我以为java不支持多重继承.我问的原因是我是否已经从我的自定义类中的另一个类继承而且java强制java.lang.Object在它之上强制隐式继承,它不是多重继承吗?

另外,java.lang.class类也是所有自定义类/对象的超类吗?如果没有,在java反射中我们如何获得传递的任何类的类或者在任何对象上调用isInstance?

the*_*ejh 5

没有显式超类的java.lang.Object每个类都继承自,并且每个其他类间接地从它继承,因为当你继承继承树时,你最终会在没有显式超类的类结束,然后在Object.

java.lang.Class是所有类对象的超类(不是所有对象!)的超类,例如String.class.

  • 更正:String.class不是继承/扩展java.lang.Class的类/类型.它是java.lang.Class本身的`实例`.此外,java.lang.Class是一个`final`类; 因此,它不可能是任何东西的超类.java.lang.Class的函数是java.lang.Object的所有实例和子类的**元数据**提供者/描述符(包括java.lang.Class本身.)与之关联的`class`字段每个类(.ie.`String.class`)是一个`静态`,类级别字段,描述与该类关联的元数据. (5认同)

Alb*_*gni 1

一切都是对象,也就是说你可以看到这样的结构:

Object

Animal

Cat
Run Code Online (Sandbox Code Playgroud)

而不是这样的:

Object    Animal

      Cat
Run Code Online (Sandbox Code Playgroud)

WhereCat都扩展了两者,它与最后一个示例不同,但它Cat是.extends Animalextends Object