package equal;
public class Customer {
public static void main(String[] args) {
Customer cust1 = new Customer("Tom",21);
Customer cust2 = new Customer("Tom",21);
System.out.println(cust1.equals(cust2));
}
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Customer() {
super();
}
public Customer(String name, int age) {
super();
this.name = name;
this.age = age;
}
//重写的原则:比较两个对象的实体内容(即:name和age)是否相同,重写必须是同名同参数的。
@Override
public boolean equals(Object obj) {//形参是Object类型的。Object obj = cust2;Object obj = new Customer("Tom",21)
if(this == obj) return true;
if(obj instanceof Customer) {
//判断obj是否为Customer类的实例。Customer会继承Object,
Customer cust = (Customer)obj;
if(this.age == cust.age && this.name.equals(cust.name)) return true;
else return false;
}else return false;
}
}
是多态性的体现吗?obj instanceof Customer不是判断obj是否为Customer的实例吗,但是obj不是Object类的实例吗,怎么还是Customer的实例呢?