- Object类是所有的java类的根父类,所有的java类都直接或者是间接地继承了Object类
- 如果在一个类中没有使用extends关键字指明该类所继承的父类,那么该类的父类默认为
java.lang.Object
- 在Object类中,存在一个默认的无参构造器,因此在调用一个类的默认无参构造器时,最终调用的是Object类的默认无参构造器
新建一个类,名为demo_1
public class demo_1 {
}
之后查看该类的层次结构,可以发现该类的继承关系如下:
此时在demo_1类中并没有使用extends关键字指明它的父类,因此便默认继承Object类
现在,在上面demo_1类的基础上,新建一个它的子类,名为demo_2
public class demo_2 extends demo_1{
}
此时再查看demo_2类的层次结构:
可以很清晰地看出,demo_2的父类是demo_1类,demo_1的父类是Object类,因此demo_2类的根父类是Object类
最后,可以进入Object类查看该类的具体结构,Object类默认提供了如下一些方法:
当然,Object类中的默认方法也是可以被重写的,下面便是一个重写的equals方法:
import java.util.Objects;
public class demo_1 {
String str;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
demo_1 demo1 = (demo_1) o;
return Objects.equals(str, demo1.str);
}
}