Стоит отметить, что эффект только new
в этом контексте заключается в подавлении предупреждения. В семантике нет изменений.
Итак, один ответ: нам нужно new
сообщить компилятору, что скрытие намеренное и избавиться от предупреждения.
Следующий вопрос: если вы не будете / не можете переопределить метод, зачем вы вводите другой метод с тем же именем? Потому что скрытие - это, по сути, конфликт имен. И вы, конечно, избегаете этого в большинстве случаев.
Единственная веская причина, по которой я могу думать о намеренном укрытии, - это когда на вас навязывается имя интерфейса.