НАСЛЕДОВАНИЕ КЛАССОВ

Ключевое слово 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(список параметров базового класса) {
		// сначала выполняется конструктор базового класса,
		// а потом все остальные операторы
	}
}
