* Use interface if you don't want to implement any of the member functions. This implies. - The class implementing the interface must implement all of its functions.
* In abstract class you need not define/implement all the functions like interface. This can be used where you can to define/implement some method and allow user to implement the rest(if there any unimplemented funtions..since there an abstract class can define/implement all the functions).
Interface and abstract class can be used for multiple inhertence. (OOP concept)