equals补充内容
Object类的equals方法,默认比较的是两个对象的地址值,没有意义。所以我们重写equals方法,比较两个对象的属性
隐含着一个多态
多态的弊端:无法使用子类特有的内容(属性和方法)
Object obj = new Penson(“古力娜扎”,19);
解决:可以使用向下转型(强制转换)把obj类型转换成Person
equals重写的原理
@Override
public boolean equals(Object o) {
if(this == o) return true;
//getClass() != o.getClass() 使用反射技术,判断o是否是Person类型,这句就等效于if(obj instanceof Person)
if(o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}