Te explico un poco cada clase de java hereda de la clase Object, en la clase object esta el metodo toString() como otros metodos mas te pongo un ejemplo de como sobreescribir el metodo toString
Código PHP:
public class Persona{
private String nombre;
public Persona(String n){
this.nombre = n;
}
//aqui se sobreescribe el metodo
@Override
public String toString(){
return nombre;
}
}
La clase anterior sobreescribe el metodo toString indicando que devuleva el nombre de la persona, ahora cuando tu llama al metodo System.out.println() y le envias como parametro un objeto lo que hace el metodo es llamar a la funcion toString del metodo por ejemplo
Código PHP:
Persona p = new Persona("Maria");
System.out.println(p);
el resultado del codigo anterior es que te imprimime en consola "Maria", espero que te ayude con tu duda
salu2