"I heard that what ever the methods are there in the interface they are public Abstract in nature!"
No, they aren't.
Methods defined in an Interface cannot be
abstract
- they never have any form of implementation except in the derived class, which absolutely
must implement all methods declared in the interface class.
Methods defined in an Abstract class can have an implementation which
may be overridden and implemented in a derived class, but doesn't have to be. If it isn't then the base class version is used.
Abstraction and encapsulation can't be compared: they are not strictly related, and do not even try to do the same job!
Encapsulation hides the implementation details and provides a layer of code over the top to access it - the external consumer of the class cannot interact with the encapsulated class directly, but must go via the class in which the object is embedded - and probably doesn't even know it exists.
Abstraction is providing a generalization (say, over a set of behaviors).
Time for some reading:
Abstraction, Encapsulation, and Information Hiding[
^]