在JDK中提供了一个Object类,它是所有类的父类,即每个类都直接或间接继承该类。
例如:
class Cat
{
public void shout(){
System.out.println("喵喵。。。。");
}
}
class Example
{
public static void main(String[] args)
{
Cat an1=new Cat();
System.out.println(an1.toString()); //调用toString()方法
}
}
运行结果:
Cat@15db9742
虽然Cat中并没有定义toString()方法,但程序并没有报错,这是Cat默认继承自Object类,在Object类中定义了toString()方法,在该方法中输出了对象的基本信息。
Object类的toString()方法的代码具体如下:
getClass().getName()+"@"+Integer.toHexString(hashCode());
注释:
getClass().getName()返回对象所属类的类名,即Cat
hashCode() 返回该对象的哈希值
Integer.toHexString(hashCode()) 将对象的哈希值用16进制表示
在实际开发中,通常希望对象的toString()方法返回的不仅仅是基本信息,而是一些
特有的信息,这时
重写Object的toString()方法便可以实现。