Интерфейс PreparedStatement наследуется от интерфейса Statement, но что является их реализацией? Даже в доках оракла, как и везде написано, что этот интерфейс создает объект, но объект интерфейса нельзя создать, создаваться должен объект реализации. Прошу объяснить этот момент.
Реализации предоставляет JDBC драйвер конкретной базы данных. Пример PostgreSQL
Делается это для того, чтобы не быть зависимыми от конкретного драйвера БД. Если вы поменяете драйвер на другой (например, смените базу данных), то при использовании интерфейсов ваш код вообще никак не поменяется.