I would like to explain the difference in non programming language.
Assume that you have TV and a Remote. By Remote, you can operate with TV.
Remote had On and Off buttons. When you click on On button, TV will switch on. But you don't know internals of On button implementation . Same is the case with Off button, which switches off TV.
Now Remote
is an interface and TV
is an implementation object. Map same concepts in java programming language and you will get more clarity.
Remote is interface with On and Off methods. TV implements Remote interface.
Abstraction is hiding details and TV has achieved it. Even in absence of Remote interface, TV can have On and Off buttons and hides the details.
Interface with abstract methods is not necessary to define abstraction. But interface is pure abstract and hides the details of implementation. It exposes contract by hiding internal implementation of implementor.
Have a look at related question
Abstraction VS Information Hiding VS Encapsulation