I know
Abstraction is process of hiding the implementation details and showing only the functionality.
But by using interfaces we can not implement any thing.We need the implemented class also to develop applications.For example in java we have List interface which has sub classes like LinkedList and ArrayList.They provided the code for those classes also.We are able to see the code for those implemented code.Can any one give me an example for abstraction.
If i only give the interface to someone, then i can achieve the abstraction.But any example for this?
Hiding here means making the client of your code independent of the underlying implementation.
Interfaces specify what you can do. Implementations specify how to do it.
As How tos improve/change with time, the client (another piece of code) using interfaces continues to work without modification. The client still gets what it wants, but probably in a more efficient manner now.
Abstraction is a style of programming aimed at easing the lives of programmers and consumers. It has nothing to do with hiding the source code from others. There are probably other ways to do it.