I just started learning Java. What I've learned about constructor is that :
- It will automatically run when an object is initialized. 
- The name of the constructor has be the same as the class name. 
Now, below is where I'm starting to get confused.
class Frog{
   public String toString() {
      return "Hello";
   }
}
public class App {
   public static void main(String[] args) {
      Frog frog1 = new Frog();
      System.out.println(frog1);
   }
}
My question :
Since public String toString () is not a constructor, then why can it behave like constructor when I run the program. I thought It can only be run when I call it from the App class.
 
     
     
     
     
     
     
     
    