Java Object类中toString方法的重写

Object类中的tostring方法的:

当我们输出一个对象时,实际是输出的是这个类中的tostring方法,是一个地址值,而不是类中的属性。

一:子类没有重写Object类中的toStrinng方法时的输出

public class ToStringUse { public static void main(String[] args) { // TODO Auto-generated method stub A1 a1=new A1(12,"chentao"); System.out.println(a1.toString());//此时子类A1没有对根父类Object类中的toString没有进行重写 } class A1{ int age; String name; A1(int age,String name){ this.age=age; this.name=name; } } }

输出结果

polymorphism.A1@28a418fc //输出的是对象的地址值,而非属性

二:在子类中重写toString方法,使得输出类中的属性

public class ToStringUse { public static void main(String[] args) { // TODO Auto-generated method stub A1 a1=new A1(12,"chentao"); System.out.println(a1.toString());//此时的A1类中已经重写了Objiect类中的toString方法 } class A1{ int age; String name; A1(int age,String name){ this.age=age; this.name=name; } @Override//方法的重写 public String toString() { return "A1[name="+name+","+"age="+age+"]"; } }}

输出结果:

12 chentao //输出的是类中的属性

关键点注意:

Java语法机制内,String类已经对Object类中的toString方法进行过重写,使得输出类中的属性。

Date类,也重写了toString方法,使得输出值为类中的属性

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjpdj.html