Object:
是所有的類的父類? ,Object中所有的方法 , 子類都能使用? ,? ?接口不是Object子類。
Person: /*將父類的equals方法 重寫* 不改變父類的源代碼 equals 比較內存地址* 比較兩個成員變量 變量值相等 返回true 不等 返回false* 重寫父類的方法equals 自己定義對象的比較方式 * */ public class Person extends Object{private String name;private int age;public Person(){}public Person(String name,int age){this.name=name;this.age=age;}/** 重寫Object的toString()方法 沒有必要讓用戶看到內存地址 * 要求 :返回值是成員變量的* */public String toString(){return name+": "+age;}public boolean equals(Object obj){if(this==obj){return true;}//對obj 作非空判斷if(obj==null){return false; }if(obj instanceof Person){//參數obj 接受到的是 Person對象 才能轉型//對obj這個參數進行向下轉型Person p =(Person)obj;return this.age==p.age;}return false;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
Test: public class Test {public static void main(String[] args) {Person p = new Person("張無忌",18);Person p1 = new Person("張san",18);boolean e = p1.equals(p1);System.out.println(e);boolean b = p.equals(p1);//重寫了父類equals方法 比較年齡 如果不重寫 比較內存 System.out.println(b);//調用Person類的方法toString()//輸出語句 寫的是每一個對象 默認就調用toString(); System.out.println(p);System.out.println(p1); } }
?