Object类
Object类是其他所有类的爹
需求:复写Object类的public boolean equals(Object obj)方法
1 /**
2 *需求:复写Object的public boolean equals(Object obj)方法
3 *功能:比较Person的num值与另一个对象的num值是否相等
4 */
5 class Person
6 {
7 private int num;
8 //构造方法
9 Person(int num){
10 this.num=num;
11 }
12 //复写equals
13 public boolean equals(Object obj){
14 /*这样写会报错,因为obj类没有定义num这个属性,需要下转型
15 return this.num==obj.num;
16 */
17
18 /*弊端:当传入的参数不是Person对象时,不能强转型,所以需要判断处理
19 Person p=(Person)obj;
20 return this.num==p.num;
21 */
22 //如果不是相同对象,直接false
23 if(!(obj instanceof Person)) return false;
24 //强制下转型
25 Person p=(Person)obj;
26 return this.num==p.num;
27
28 }
29 }
30
31 class Dog
32 {
33 }
34 class Equals_obj
35 {
36 public static void main(String[] args)
37 {
38 Person p1=new Person(1);
39 Person p2=new Person(1);
40 Dog d=new Dog();
41 System.out.println(p1.equals(p2));
42 System.out.println(p1.equals(d));
43 }
44 }