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); } }