object类是所有类型的根类,提供统一类型容器能力,支持工厂模式中泛型接收与抽象基类的松耦合操作,但仅提供基础方法,子类特有行为需转型后调用。

Object 类在工厂模式和抽象基类设计中不直接参与业务逻辑,但它提供了最底层的类型统一能力——让不同具体类型的实例能被同一套引用机制容纳、传递和初步处理。
Object 是所有工厂产出的“默认容器类型”
当工厂返回一个对象,而你暂时不确定或不关心它的具体类型时,Object 就是最安全、最通用的接收类型:
- 工厂方法可声明为 public Object createProduct(String type),无需提前引入具体产品类;
- 旧式集合(如原始类型 ArrayList)内部用 Object[] 存储,靠向上转型自动接纳任意工厂产出;
- 搭配泛型擦除,List> 或 Map
在运行时实际操作的仍是 Object 引用。
抽象基类借助 Object 实现松耦合的通用操作
抽象类本身不能被实例化,但它的子类实例天然就是 Object。这使得抽象基类可以定义面向 Object 的通用流程:
- 日志记录方法可接收 Object obj 参数,统一打印 obj.getClass().getSimpleName() 和 obj.toString();
- 校验工具类可声明 public boolean isValid(Object candidate),再用 instanceof 分支判断是否属于本族子类;
- 缓存层常以 Map
存储各类工厂创建的对象,避免为每种类型单独建 Map。
注意:Object 提供的是“统一视图”,不是“统一行为”
把工厂产出赋给 Object 变量,只是改变了编译期可见的方法集:
- 你只能调用 toString()、equals()、hashCode()、getClass() 等 Object 方法;
- 要执行子类特有逻辑(如 start()、render()),必须先用 instanceof 判断,再强制转型;
- 真正体现多态的是方法重写(如所有子类都重写了 toString()),而非 Object 类型本身。
它不替代抽象类或接口的契约作用,而是作为 JVM 层面的兜底机制,让泛化处理成为可能。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











