Наследование позволяет классу наследоваться от базового класса, повторно используя и расширяя его члены. Полиморфизм позволяет вам обращаться к производным объектам через тип базового класса, при этом правильный переопределённый метод вызывается во время выполнения (через virtual/override). Это основные механизмы ООП в C#.
