对象Class(多态、铸造)

Object Class (polymorphism, casting)

我是学习新手 Java,我刚刚读到关于对象 class 作为所有对象的超级class。我现在想知道,如果我想创建更多 classes(根据多态性规则)并且对象 class 应该在“顶部”,我可以创建它还是应该将其视为“默认”?

Java中的Objectclass是所有classes的根。

您每 class 隐式创建 extends Object。虽然那些 class 定义是相等的:

class MyClass { }
class MyClass extends Object { }

extends Object 部分由编译器自动为您完成。

如果您有一个 class 层次结构,那么此层次结构中的第一个 class 始终(隐含地)是 Object:

class A { } // A will implicitly extend Object
class B extends A { } // though B is of type Object, too, because A is, too

这就是为什么您可以将所有内容(原始类型除外)转换为 Object 的原因:

A a = new A(); // works
B b = new B(); // works

Object a = new A(); // works, because A implicitly extends Object
Object b = new B(); // works, because B extends A, and A extends Object, and though B extends Object, too

A a = new B(); // works, because B extends A
B b = new A(); // fails, because A does not extend B

通常你永远不会自己写extends Object,因为它是由Java自动为你完成的。