首页 > 解决方案 > 如何不扩展 Java 中的 Object 类?

问题描述

默认情况下,Java 中的每个类都扩展了Object该类。(所以总是发生单继承)

有没有不扩展 Object 类的类?(例如 int 可能是类 int 的一个实例,但不是一个对象)

我们可以以某种方式创建自己的不扩展类Object吗?也许通过修改javac最终代码不扩展 Object 类,或者创建我们自己的类来超越 object 类的构造函数至少避免异常行为的事情?

标签: javajavac

解决方案


int是一个原始的,因此我们不能说它扩展了任何东西。

当涉及到你的问题时:

有没有不扩展 Object 类的类?

你已经回答了上面的字面意思:

Java 中的每个类都扩展了 Object 类

PS:我们不能说存在双重继承,因为一个类 extendsObject和另一个类,因为那个“其他类”也 extends Object。实际上,类是其所有超类型的子类型,例如:

HashMap m = new LinkedHashMap();
AbstractMap m = new LinkedHashMap();
Object m = new LinkedHashMap();

为简洁起见省略类型参数。

编辑:参考关于什么是对象和什么不是对象的讨论,JLS §4.3.1给出了答案:

对象是类实例或数组。


推荐阅读