Question about interfaces

So I've programmed C# for…a little over a year now and I've largely ignored interfaces all together as I have not had a lot of use for them and I never really understood the benefit of them. Lately I've realized a lot of things require you to implement interfaces, tutorials use them, I hear of companies using them left and right, etc. so I assume they must be important.

I went to go read why they are good/bad and most of what I saw was that they either are worse than other features of OOP or they are on an equal level with others. I get that they are used for whenever you want to force an object to implement stuff(is a vs. has a), but I am kind of wondering why that is really all that important, meaning what does that actually save me?. Please don't misinterpret what I mean, I see why it would be good to force an object for example to have certain components, I'm asking why would that need to be something that is forced by an interface which in my mind adds this whole other thing on top of your class. Would it not just be better to just write out a class and then say that certain aspects of the class have to be initialized or implemented in a derived class? Or am I misunderstanding something?

Like I said, I want to learn why they are useful/not useful, etc. because I know in C# they are important, so any feedback on this would be appreciated.

by Trevor266 via /r/csharp

Leave a Reply