java中的所有类都是Object类的子类,Object类是所有类的父类(基类)/祖先类/顶级类
Object类是java中的顶级类,即所有类的祖先类,Java里面除了Object类,所有的类默认都会隐式继承Object类,只有Object类是没有父类的(没有继承关系的)
所有的类的对象的内存地址都可以被Object类类型的变量接收(向上转型),也就是使用Object类类型的变量可以接收所有类的对象的内存地址
Object类中toString方法
Object类中定义了toString方法,当我们打印对象/对象名的时候,会自动调用Object类当中的toString方法,执行Object类的toString方法,输出的是toString方法返回的内容,也可以自己手动调用此方法
默认的从Object类当中继承下来的toString方法,返回的是类名@对象的内存地址(引用地址)经过哈希算法后得到的十六进制的哈希码
如果我们想手动修改打印对象/对象名时候输出的内容,可以在Object类的子类中(也就是其他所有类中)重写toString方法,将toString方法的返回值设置为自己想要打印的内容
重写toString方法写法: public String toString() { 代码...... }
Object类中equals方法
Object类中定义了equals方法,当我们比较两个对象内存地址(引用地址)是否相同时,可以使用Object类中的equals方法
Object类中equals方法使用:对象1.equals(对象2)
如果两个对象的内存地址(引用地址)相同,则返回true,否则返回false
如果是两个基本类数据类型数据进行比较使用==双等号来比较,如果是两个引用数据类型数据的内容就需要重写equals来进行比较,两个引用数据类型数据使用==双等号比较的是它们俩的内存地址是否相同,也就是否是同一个对象
如果要比较对象中内容,必须重写Object中的equals方法,因为equals方法默认也是按照地址比较的!!!比较对象中内容是否相同的时候,一定要重写equals方法
重写equals方法写法: public boolean equals(Object obj) { 代码..... }
两个引用(