Please see my comment to the question. Yes, this is interface, and no, people don't use it as a class, it's impossible.
My idea is that you only think that some "use it as a class", because you don't know how interfaces are used and how inheritance works. A variable or a member can have different
runtime type and
compile-time type. If some interface is implemented, the runtime type is always a class or
struct
. However, the declared (compile-time) type can be the interface type, because it is, due to inheritance, is
assignment-compatible with the type implementing the interface.
I think this is enough. Feel free to ask some follow-up questions, if you have to, but keep in mind: if something is unclear at this point, the best idea would be reading on OOP
from the very beginning. Only when you get all major concepts, with examples, you can understand this:
https://msdn.microsoft.com/en-us/library/ms173156.aspx[
^],
https://msdn.microsoft.com/en-us/library/hh165754%28v=nav.70%29.aspx[
^].
—SA