public class Solution {
public static void main(String[] args) throws Exception {
Drink beer = new AlcoholicBeer();
System.out.println(beer.toString());
AlcoholicBeer beer1 = new AlcoholicBeer();
System.out.println(beer1);
public interface Drink {
boolean isAlcoholic();
}
public static class AlcoholicBeer implements Drink {
@Override
public boolean isAlcoholic() {
return true;
}
@Override
public String toString() {
if (isAlcoholic()) {
return "Напиток алкогольный";
} else {
return "Напиток безалкогольный";
}
}
}
}
помогите понять .. System.out.println вызывает метод toString() который находится где-то там в классах , но мы его перезаписываем как нам удобно(нужно), разве при вызове System.out.println(beer1); он же будет вызывать наш метод а не тот оригинал? зачем нам добавлять после обьекта .toString() если он и так знает что обьект класса AlchoolicBeer с переопределёном методом тоСтринг() зачем нам это
System.out.println(beer.toString()
);
нужно ли его писать или нет ?