Java Object类中toString方法的重写

时间:2023-03-09 05:33:52
Java Object类中toString方法的重写

Object类中的tostring方法的:

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

一:子类没有重写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;
}
} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

输出结果

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

二:在子类中重写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+"]";
}
}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

输出结果:

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

关键点注意: