Object类详解
/**
* 测试Object类 所有类的继承源头
*/
public class TestObject {
//默认TestObject extends java.lang.Object
public static void main(String[] args) {
TestObject o1 = new TestObject();
System.out.println(o1);
//默认打印o1.toString() toString()方法继承于Object类
System.out.println(o1.toString());
/*结果 com.diva.test.TestObject@1b6d3586
包(路径)com-diva-test-类TestObject @ 地址转换十六进制
*/
}
}
class To1{
int id;
int number;
@Override
//重写
public String toString() {
return "To1{" +
"id=" + id +
", number=" + number +
'}';
}
public static void main(String[] args) {
To1 o2 = new To1();
System.out.println(o2);
//打印仍默认 o2.toString 结果受重写影响
String a = "a";
String b = "a";
System.out.println(a.equals(b));
/*调用继承自Object的equals(Object obj)方法
{return this(a) == obj(b)}
*/
}
}
class To2 {
int id;
//右键 generate equals() 更改判断标准为this.id == id
@Override
public boolean equals(Object o) {
if (this == o) return true;
//先判断地址
if (o == null || getClass() != o.getClass()) return false;
//判断 类是否一致
To2 to2 = (To2) o;
return id == to2.id;
//判断id相同
}
}