Первый явно выглядит чище для меня - он использует общность того, что каждый элемент перечисления будет иметь фиксированный String URL, который известен при инициализации.Вы эффективно повторяете эту «логику» в каждой реализации во второй версии.Вы переопределяете метод для обеспечения одинаковой логики («просто возвращайте строку, известную во время компиляции») в каждом случае.Я предпочитаю зарезервировать переопределение для изменений в поведении .
Я предлагаю сделать поле url
закрытым, хотя, в первом.