Java рассматривает интерфейсы почти как классы, например, они используют одно и то же пространство имен (у вас не может быть интерфейса с тем же именем, что и у класса), а скомпилированный интерфейс почти идентичен скомпилированному абстрактному классу.
Так что не имеет смысла хранить их в другом формате или с другим расширением файла. Наоборот, это усложнит многие вещи. Например, когда вы загружаете класс или интерфейс по имени (Class.forName ("my.class.name")), Java не знает, является ли он классом или интерфейсом. Если будет два разных расширения, Java будет пытаться найти файл «my / class / name.class», а затем «my / class / name.interface», вместо того, чтобы пробовать только первое.