Java 中所有类都继承 Object 吗?
查看完整题解
参考回答
直接回答
Object 是 Java 类继承体系的根。除 Object 自身没有父类以外,普通类都直接或间接继承它;数组对象也属于 Object 的子类。基本类型不是类,接口的继承关系也不能简单说成“接口 extends Object”。
讲清原理
一个没有显式 extends 的普通类,默认直接继承 Object。String、异常类、record、枚举等最终也都位于这套类继承体系中,只是中间的父类不同。例如枚举经由 Enum,record 经由 Record。
Object 提供了 equals、hashCode、toString 等基础方法,但这不表示所有子类的方法语义完全一样:子类可以重写允许重写的方法。数组虽然是对象,却没有重写出按元素比较的 equals。
例子与易错点
Object text = "hello";
Object numbers = new int[]{1, 2};
System.out.println(text instanceof String); // true
System.out.println(numbers instanceof int[]); // true
int 本身不是 Object。Object value = 1 能编译,是因为先把 int 装箱为 Integer,再进行引用赋值;不要由此推出基本类型也是 Object 子类。
相关题:第 20 题、第 25 题、第 38 题。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。