这里是根据你传入的参数来调用equals方法的,如果你传入的是Demo对象的参数,
就调用equals(Demo c)方法,如果你传入的是除了Demo对象以外的任何参数,都调用 equals(Object obj)
以下是我用代码做的一个测试
class Demo
{
private int num;
Demo(int num)
{
this.num = num;
}
public boolean equals(Object obj)
{
return true;
}
public boolean equals(Demo c)
{
return false;
}
}
class DemoTest
{
public static void main(String[] args)
{
Demo d=new Demo(3);
System.out.println(d.equals("aaa"));//结果为true
System.out.println(d.equals(2222));//结果为true
System.out.println(d.equals(new Demo(3)));//结果为false
System.out.println(d.equals(d));//结果为false
System.out.println(d.equals(new Demo(4)));//结果为false
}
}
|