Interfaces são contratos!
Para dirigir um carro é preciso saber detalhes de como motor funciona?
Não, a única coisa que precisamos saber é como utilizar a interface do carro: volante, pedais, freio de mão, seta, faróis e etc.
Graça a esta abstração somos capazes de dirigir vários modelos de carros diferentes que possuem uma "interface" parecida, isso é bom porque não gostaria de fazer auto escola toda vez que trocasse de carro :)
A forma como Fusca e uma Ferrari aceleram são muitos diferentes na sua mecânica, mas nós motoristas não precisamos saber disso, apenas pisamos no pedal do acelerador.
Em programação é a mesma coisa!
Quando definimos as nossas funções em interfaces estamos abstraindo os detalhes da implementação do nosso usuário, deixando essa lógica para classe responsável, sem dizer que estamos reduzindo o acoplamento do nosso sistema, uma vez que podemos trocar a implementação de um banco de dados A para um B sem que nossos clientes notem a diferença.
Espero ter esclarecido um pouco a sua dúvida, isso também foi confuso para mim no começo, abs!