Теоретически я понимаю, почему в Java нет абстрактного статического, как объясняется, например, в Почему статические методы не могут быть абстрактными в Java.
Но как решить такую проблему?
В моем приложении используются файлы нескольких типов, которые я хочу назначить статическим свойствам, например, описание этого типа файла (например, "файл данных", а другой - "файл конфигурации" и т.д.).
Очевидно, я бы поставил это в статическую String, чтобы описание было доступно без инстанцирования файла (полезно для GUI f.i.).
С другой стороны, очевидно, что все типы файлов должны иметь некоторые общие методы, такие как getStatus()
, которые, очевидно, я хочу наследовать от общего суперкласса MyFileType
.
getDescription()
, конечно, будет абстрактным в суперклассе.
Пробовал использовать комбинацию суперкласса и интерфейса, но аналогичная проблема: статическая реализация абстрактного метода не допускается.
Как решает Java-гуру? Это действительно такая плохая реализация, которую я хочу создать?
Большое спасибо, Philipp