НАСЛЕДОВАНИЕ КЛАССОВ Ключевое слово virtual Чтобы производный класс получил возможность перекрывать методы, используйте ключевое слово *virtual*. // родительский метод class Bird { public virtual void Fly() { // код, заставляющий птицу летать } } Добавление одноименного метода в производный класс Переопределенный метод должен иметь такую же сигнатуру, то есть то же самое возвращаемое значение и параметры. В его объявлении используется ключевое слово *override*. // дочерний метод class Penguin : Bird { public override void Fly() { MessageBox.Show("Пингвины не летают!") } } !!! Используйте ключевое слово *override* для добавления в производный класс методов, замещающих методы унаследованные. Перекрывать можно методы, помеченные в базовом классе словом *virtual*. -=-=-=-=-=-=-=-=-=-=-=- Если в классе присутствуют конструкторы, то все классы, которые от него наследуют, должны вызывать хотя бы один из этих конструк- торов. При этом конструктор производного класса может иметь свои собственные параметры. class Subclass : BaseClass { public Subclass(список параметров) : base(список параметров базового класса) { // сначала выполняется конструктор базового класса, // а потом все остальные операторы } }