So, obviously, the next logical question would be when to use Interface and when to use Abstract.
I understand some of the differences between the two like abstract classes can have BOTH implementation and definitions, whereas interfaces cannot do implementation. abstract classes are inherited whereas interfaces are implemented.
Besides that, abstract and interface seem to serve the same purpose.
So, when do I use "abstract" and when do I use "interface"?