67,513
社区成员
发帖
与我相关
我的任务
分享
public class A {
public int x;
public boolean equals(Object obj) {
if (! (obj instanceof A)) {
return false;
}
A that = (A) obj;
return this.x == that.x;
}
}
public class B extends A {
public int y;
public boolean equals(Object obj) {
if (! (obj instanceof B)) {
return false;
}
B that = (B) obj;
return super.equals(obj) && this.y == that.y;
}
}
A a = new A();
B b = new B();
System.out.println(a.equals(b)); // true,B是A的子类,b当然是instanceof A,而且由于之比较a.x和b.x,所以true
System.out.println(b.equals(a)); // false,a不是B的实例
List<Integer> list1 = Arrays.asList(0,1,2,3);
List<Integer> list2 = new ArrayList<Integer>(list1);
List<Integer> list3 = new CopyOnWriteArrayList<Integer>(list1);
System.out.println(list1.equals(list2));
System.out.println(list2.equals(list1));
System.out.println(list1.equals(list3));
System.out.println(list3.equals(list1));
System.out.println(list2.equals(list3));
System.out.println(list3.equals(list2));