Multiple developers can work simultaneously with a single class in separate files.
In C#, Generics allow you to write a class or method that can work with any data type.
A sub class can only have one parent class but a subclass can implements or inherits one or more than one interfaces
An interface in c#, is a contract between itself and any class that implements it.
C# Abstract classes are used to declare common characteristics of subclasses. An abstract method contains a method signature, but no method body.