In C# we can do polymorphism through inheritance. it allows to define methods in a base class and override those methods with derived class implementations. Thus if we have a base class object that might be holding one of several derived class objects, polymorphism allows to call a method that will work differently according to the type of derived class the object belongs to.