Take the 2-minute tour ×   There´s a question in my mind for
some time now, which hopefully can be cleared quickly by some of
you:  I am a big fan of MVC, ASP.Net Mvc in my case.  What I
have noticed is the hype about interfaces. Every video, tutorial
and book seems to solve any kind of abstraction with interfaces.
I have adapted these patterns, understood why and how and I am
basically very happy with it.  But I just don´t get why
interfaces are used everywhere. I´ve almost never seen some
abstraction being done with abstract base classes, which I don´t
understand. Maybe I miss something? I know that you can only
inherit from one base class while multiple interfaces are
possible. But interfaces do have disadvantages, especially when
some changes need to be done, which breaks your implementations.
In my projects so far, I only used to pick interfaces for
completely different classes.  For example, the whole repository
pattern could be done with an abstract base class, still
providing testability and exchangea