JAVA----Object类

Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中唯一没有父类的类。
其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
下面是Object类中的相关方法摘要:(具体用法请参考JDK API)

JAVA----Object类_第1张图片

举例:
Object 类中提供了对象是否相同的功能,没有必要重新定义。
只要沿袭父类中的功能,建立自己特有比较内容即可。这就是覆盖。

//public boolean equals(Object obj)
class Demo
{
    private int num;
    Demo(int num)
    {
        this.num = num;
    }
    public boolean equals(Object obj)
    {
        Demo d = (Demo)obj;
        return this.num == d.num;

    }
}

class ObjectDemo
{
    public static void main(String[] args)
    {
        Demo d1 = new Demo(4);
        Demo d2 = new Demo(5);
        Demo d3 = new Demo(5);
        System.out.println(d1.equals(d2));
        System.out.println(d3.equals(d2));
    }
}

运算结果:
false
true

//public String toString() 
//它的原理就是:toString:getClass().getName() + '@' + Integer.toHexString(hashCode())
class Demo
{
    private int num;
    Demo(int num)
    {
        this.num = num;
    }
    public boolean equals(Object obj)
    {
        Demo d = (Demo)obj;
        return this.num == d.num;

    }
}

class ObjectDemo
{
    public static void main(String[] args)
    {
        Demo d1 = new Demo(4);
        Class c = d1.getClass();
        System.out.println(c.getName());
        System.out.println(c.getName()+"@@"+Integer.toHexString(d1.hashCode()));
        System.out.println(d1.toString());

    }
}

输出结果:

如果不想使用Object类中本身存在的方法,就应该在子类中覆写父类中相应的方法,在子类中定义自己需要实现的形式。

你可能感兴趣的:(java,jdk,继承,api,对象)