На собеседовании по java спросили - зачем писать, к примеру,
Фигура треугольник = new Треугольник(),
а не просто
Треугольник треугольник = new Треугольник()
и почему это удобно?
На собеседовании по java спросили - зачем писать, к примеру,
Фигура треугольник = new Треугольник(),
а не просто
Треугольник треугольник = new Треугольник()
и почему это удобно?
Можно здесь много антимоний развести, конечно: что это ни фига не полиморфизьм, что это вообще не об этом, что это и т.д.
Отвечу так:
Фигура треугольник = new Треугольник(), мы подразумеваем, что треугольник рассматриваем как наследник класса Фигура (ну или что Треугольник реализует интерфейс Фигура)Фигура реализованы в классе Треугольник (например Фигура.площадь() - реализуется в разных классах по разному)Четырехугольник, Многоугольник или даже Серо-буро-малиновый-овал, которые также наследники класса ФигураТреугольник мы переходим на другой уровень абстракции Фигура и можем например рассматривать не отдельные коллекции треугольников, многоугольников, а сразу 1 коллекцию фигур - ну и т.д. и т.п.Конкретно в указанном вами примере - практически ничем.
Если это определение локальной переменной в каком-то методе(вероятней всего так), то правильным ответом будет "потому что в компании принято соглашение писать именно так" - ни о каких "удобствах" тут и речи быть не может- просто субьективное предпочтение людей составлявших это самое соглашение.
Если же подразумевалось определение приватного поля класса, то конкретно в случае с Java, насколько помню - в сабкласе после вызова конструктора можно будет подменить этот объект на любой другой объект, реализующий интерфейс Треугольник или являющийся наследником одноименного класса - крайне редко необходимая возможность, в общем-то..