Java:Object类
objcet类中涉及的多态的扩展性,由于Object是所有类的根类,所以它可以接收任意类型的数据,包括基本数据类型。因为这一特点,它可以对多态性进行扩展。
1、创建一个Demo类来判断类类型
class Demo { private int num; public Demo(int num) { this.num = num; } public boolean equals(Object obj) // Object obj = new Demo() { if(!(obj instanceof Demo)) //判断obj是否和Demo是同类 return false; Demo d = (Demo) obj; //将父类的引用(Object)向下转换为子类(Demo) return this.num == d.num; } public String toString() { return "Demo:"+num; //返回对象的值(每一个对象都有自己的特定的字符串) } }
2.创建一个Person类来初始化
class Person { private int num; public Person(int num) { this.num = num; } }
3.创建一个测试类来测试多态性
class ObjectDemo { public static void main(String[] args) { Demo d1 = new Demo(5); System.out.println(d1.toString()); //输出对象d1的类及d1的十六进制地址 Demo d2 = new Demo(5); System.out.println(d1.equals(d2)); //比较d1和d2是否相等(实际是比较地址) Person p = new Person(4); System.out.println(d1.equals(p)); //比较d1和p是否相等(实际是比较地址) System.out.println(); System.out.println(p.toString()); //输出对象p的类及p的十六进制地址 System.out.println(p.hashCode()); //输出对象p的哈希地址(十六进制) System.out.println(Integer.toHexString(p.hashCode()));//输出对象p的地址(整型转化为十六进制) System.out.println(); System.out.println("本类名:"+p.getClass().getName()); //输出对象p的本类 System.out.println("父类名:"+p.getClass().getSuperclass().getName());//输出对象p的父类 } }
程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!