Подскажите, пожалуйста, почему вызывается метод toString автоматически при System.out.println(duck1); ?. Это же не конструктор, а метод. Я даже не написал System.out.println(duck1.toString()); , а он всё равно сработал. public static void main(String[] args) { Duck duck1 = new Duck(); Duck duck2 = new Duck(); Dog dog1 = new Dog(); Dog dog2 = new Dog(); Cat cat1 = new Cat(); Cat cat2 = new Cat(); System.out.println(duck1); System.out.println(duck2); System.out.println(dog1); System.out.println(dog2); System.out.println(cat1); System.out.println(cat2); //напишите тут ваш код } public static class Duck { public String toString() { return "Duck"; } } //напишите тут ваш код public static class Cat { public String toString() { return "Cat"; } } public static class Dog { public String toString() { return "Dog"; } } }