Задачу я решил, но так и не понял, почему у меня автоматом выполняются методы toString() и getWeather()? Код свой немного затер, чтобы не говорили потом, что написал решение. Итак, в println() мы объявили новый экземпляр класса Today, ввели в его конструктор из интерфейса WeatherType одну из переменных, дабы инициализировать переменную type в классе. Окей, выполняю код и вижу, что println вывел что то типа "Today it will be Freezing". Код которых указан в двух методах, которые я написал выше в тексте. Почему они сработали? Ведь кроме конструктора я вообще ничего не вызывал. Что за магия, объясните пожалуйста)
public class Solution {
public static void main(String[] args) {
System.out.println(new Today(WeatherType.CLOUDY));
System.out.println(new Today(WeatherType.FOGGY));
System.out.println(new Today(WeatherType.FREEZING));
}
static class Today implements ......... {
private String type;
Today(String type) {
this.type = type;
}
@Override
public String toString() {
return String.format("Today it will be %s", this.getWeatherType());
}
public String getWeatherType()
........
}
}