package cn.china;
/**Object:所有类的根类。
 * Object是不断抽取而来的,具备所有对象都具备的共性内容。
 * 常用共性内容
 * equals:一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相同的依据*/

public class EqualsDemo {

    public static void main(String[] args) {
        Person person1=new Person(20);
        Person person2=new Person(20);
        Person person3=person1;
        System.out.println(person1==person2);
        System.out.println(person1.equals(person2));
        System.out.println(person1.equals(person3));
        Pig pig =new Pig();
        System.out.println(person1.equals(pig));//不能乱传对象,所以要做健壮性判断;

    }

}
class Person{
    private int age;
    Person(int age){
        this.age=age;
    }
//    public boolean compare(person p){
//        return this.age==p.age;
//    }
    public boolean equals(Object obj){
        if(!(obj instanceof Person)){
            throw new RuntimeException("类型错误");
        }
        Person person=(Person)obj;//千万要注意向下转型,
        return this.age==person.age;
    }
}
class Pig{
    
}