javaObject類-equals方法及覆蓋
阿新 • • 發佈:2021-10-07
1 package face_object; 2 /* 3 * Object:所有類的根類。 4 * Object是不斷抽取而來的,具備所有物件都具備的共性內容。 5 * 常用的共性功能: 6 * 7 * 8 */ 9 10 /*class Fu {// extends Object 11 Fu(){ 12 super(); 13 } 14 } 15 class Zi extends Fu { 16 Zi(){ 17 super(); 18 } 19 } 20 */ 21 class Person extendsView CodeObject{ 22 private int age; 23 Person(int age){ 24 this.age = age; 25 } 26 //比較Person的年齡。是否是同齡人 27 /*public boolean compare(Person p) { 28 return this.age == p.age; 29 }*/ 30 /* 31 * 一般都會覆蓋此方法,根據物件的特有內容,建立判斷物件是否相等的依據。 32 */ 33 public boolean equals(Object obj) {//重寫 34 if(!(obj instanceof Person)) { 35 throw new ClassCastException("型別錯誤"); 36 } 37 Person p = (Person)obj; 38 return this.age == p.age; 39 } 40 } 41 class Demo { 42 43 } 44 45 46 public class ObjectDemo { 47 public static void main(String[] args) {48 Person p1 = new Person(20); 49 Person p2 = new Person(20); 50 Person p3 = p1; 51 Demo d = new Demo(); 52 System.out.println(p1==p2); 53 System.out.println(p1.equals(p3)); 54 System.out.println(p1.equals(d)); 55 56 } 57 }