C#: Interface Variance
C# is more tightly coupled than C++. Everything has its place in the class hierarchy. The hierarchy is mainly composed of interfaces and classes.
Interfaces provide contracts for the implementation's capabilities, which classes then fill with life. We all know the scary legends from multiple inheritance and how it brought the diamond problem over the world once. Interfaces saved us. If you are lucky enough to use .NET 5.0 or later, you are not even required to pay the tribute of implementing their methods for each single class. Let us explore them a little more.