java中object类是所有引用类型的统一父类,实现“一切皆对象”,提供tostring()等基础方法契约,并支撑泛型擦除、多态及包装类融入对象体系。

Java 中 Object 类是统一类型系统的基石,它让所有引用类型拥有了共同的“语言”和“身份”。这种统一不是靠强制规定,而是通过语言设计自然形成——每个类默认就是 Object 的子类,无需写 extends Object,编译器自动完成。
所有引用类型都隐式归为一类
无论是自定义的 User、系统类 String、数组 int[],还是实现某个接口的实例,它们在 JVM 看来,都是 Object 的后代。这就意味着:
- 一个
Object[]数组可以存String、File、ArrayList等任意对象; - 方法参数声明为
Object obj,就能接收任何对象(包括数组、接口实现类); - 旧版集合(如
ArrayList不带泛型时)内部用Object[]存储,靠向上转型实现通用性。
提供可预测的基础行为契约
Object 定义的几个核心方法(toString()、equals()、hashCode()、getClass() 等),构成了所有对象必须遵守的最小协议:
-
toString()让任意对象都能转成字符串,System.out.println(obj)才能安全执行; -
equals()和hashCode()是哈希集合正常工作的前提,重写其中一个就必须重写另一个; -
getClass()返回运行时真实类型,支撑反射、类型检查、动态代理等机制; - 即使不重写,这些方法也始终存在,保证了调用不会抛
NoSuchMethodError。
支撑泛型擦除与多态落地
Java 泛型在编译后会被擦除,比如 List<string></string> 变成 List,而 List 内部实际操作的是 Object。没有 Object 这个统一父类,泛型就无法在运行时保持类型安全的兼容性。
多态也依赖于此:父类引用指向子类对象,本质就是把子类实例当作 Object 来看待;方法参数接受 Object,再通过向下转型或 instanceof 判断具体类型,才得以实现灵活处理。
让基本类型包装类无缝融入对象体系
虽然 int 是原始类型,但它的包装类 Integer 继承自 Object,配合自动装箱(int → Integer → Object),使得 ArrayList<integer></integer> 或 Map<object object></object> 能自然容纳数值数据。这种桥接,全靠 Object 作为所有引用类型的终点。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











