toString
toString是Object类中的一个方法,默认返回一个String类型的全类名(包名+类名)+@+哈希值的十六进制
子类往往会重写toString方法,用于返回对象的属性信息
例如随便toString一个对象,输出的是com.equals_.toString_@1b6d3586
- 当重写了toString方法时,打印对象或拼接对象时,都会自动调用该对象的toString形式
根据继承的关系,先从子类找,子类没有再去父类。因为子类重写了toString所以就不用找Object的toString了
public class toString_ {
private String name;
private int age;
public toString_(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
toString_ t1 = new toString_("张三",24);
System.out.println(t1.toString());
}
@Override
public String toString() {
return "toString_{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
输出结果:
toString_{name=‘张三’, age=24}
- 当直接输出一个对象时,toString方法会被默认的调用
例如直接
System.out.println(对象名);
当子类有重写,就会调用子类自己的,子类没重写就会调用Object的
public class toString_ {
private String name;
private int age;
public toString_(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
toString_ t1 = new toString_("张三",24);
System.out.println(t1);
}
@Override
public String toString() {
return "toString_{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
输出结果:
toString_{name=‘张三’, age=24}