public class Solution {
public static void main(String[] args) throws Exception {
Drink beer = new AlcoholicBeer();
System.out.println(beer.toString()); // скажите пожалуйста, что означает данная строка
}
public interface Drink {
boolean isAlcoholic();
}
public static class AlcoholicBeer implements Drink {
@Override
public String toString() {
if (isAlcoholic()) {
return "Напиток алкогольный";
} else {
return "Напиток безалкогольный";
}
}
}
}
Роберт
23 уровень
Господа!
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
19 февраля 2019, 12:02
Это команда вывода в консоль строкового представления твоего объекта beer.
0
Роберт
19 февраля 2019, 12:05
beer.toString()) - зачем нужно??
0
Роберт
19 февраля 2019, 12:06
вернее для чего вообще toString надо. В инете искал инфу, нашел только что toString нужен для перевода из числового значения в строчное. А здесь то зачем???
0
hidden #598481
19 февраля 2019, 12:13
Ну если спрашивать в разрезе того, зачем нужен toString внутри метода println, то действительно не за чем, т.к. он так и так будет вызван в неявном виде.
Если спрашивать в целом, зачем нужен toString, то это некий конвертер, который из любого объекта получает строку, ну или другими словами возвращает строковое представление объекта. По умолчанию для всех объектов он возвращает имя класса и хэш объекта, а ты переопределил его, и для объектов класса AlcoholicBeer будет возвращаться фраза "Напиток алкогольный".
Тебе в задаче надо еще один метод реализовать.
0
Роберт
19 февраля 2019, 12:42
Спасибо большое тебе! у тебя всегда полные и развернутые ответы, не первый раз мне помогаешь!
0
Роберт
19 февраля 2019, 12:44
Скажи еще пожалуйста. Откуда строка
public String toString() { // нету же такого интерфейса
0
hidden #598481
19 февраля 2019, 13:02
Этот метод есть у класса Object, а все классы от него наследуются, поэтому у любого объекта можно вызвать метод toString(). Если его переопределить (что у тебя и сделано), можно написать свою реализацию
0