第一種情況下的.equals方法比較內容並給出true,但在第二種情況下給出false,爲什麼?對於第二種情況,爲什麼不是這樣?。對於String類和用戶定義類的.equals方法
public abstract class Base {
public static void main(String[] args)
{
//case 1
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1.equals(s2)); //true
//case 2
Child c =new Child("abc");
Child c1=new Child("abc");
System.out.println(c.equals(c1)); //false
}
}
public class Child extends Base{
private String obj;
public Child(String string) {
this.obj=string;
//System.out.println(obj);
}
}
}
結果:
true
false
在第二種情況下,您正在比較'對象'。您必須重寫Object類的'.equals' – 3kings
Child或其任何超類(Object)是否聲明瞭.equals方法? –