Dynamic Polymorphism C# allows you to create abstract classes that are used to provide partial class implementation of an interface . Implementation is completed when a derived class inherits from it. Abstract classes contain abstract methods, which are implemented by the derived class.