Понятие полиморфизма является одной из фундаментальных составляющих объектно-ориентированного программирования и позволяет определять в наследуемом классе методы, которые являются общими для всех наследующих классов. При этом наследующий класс может определять специфическую реализацию для некоторых (а возможно и всех) полиморфных методов. Важнейший принцип полиморфизма можно сформулировать фразой: "один интерфейс, несколько методов". Благодаря полиморфизму можно пользоваться методами, не обладая точными знаниями о типе объектов.
Основными механизмами для реализации концепции полиморфизма в ООП (в том числе, в языке C#) являются виртуальные методы и абстрактные классы.