Notebookпрограммный код. Инкапсулируем поле time. publicclassNotebook: Computer { private int time; public int Time
{ get { return time; } set { time = (value < 10) ? 15 : value; } } // Конструкторы не наследуются, а вызываются! Поэтому их нужно создавать
// в каждом классе-потомке. При этом можно ссылаться на базовый класс
// и лишь добавлять новые параметры.
public Notebook() { } public Notebook(string model, int ram, int time) : base(model,ram)
{ this.Time = time; } // Создадим новый метод End класса – наследника с модификатором override. public override void End()
{ Console.WriteLine("{0} выключается, заряд {1} мин", Model, Time);
} } // Чтобы он смог переопределить одноименный метод базового класса,
// зададим тому в классе – предке Computer модификатор virtual. Протестируем программу, добавив в класс Program создание экземпля-
ров класса Notebook и вызовы методов:
Notebook nb = new Notebook("Asus", 1024, 120); nb.Start(); nb.End();
Computer comp2 = new Notebook("Dell", 4096, 30); comp2.Start(); comp2.End();
Обратим внимание на важное проявление принципа полиморфизма: объект comp2 имеет тип Computer, но ведет себя как ноутбук, поскольку ини- циализируется с помощью конструктора Notebook.
Заданиядлясамостоятельнойработы
Модифицируйте пример 1 (сon241): добавив public class Nеtbook – по- томок Notebook. В нем определите поле mas (масса). Переопределите метод Start, добавив информацию о массе. Протестируйте, изменяя параметры.
Используя инструменты и методы визуального проектирования, создай- те классы с наследниками, содержащие указанные поля, конструкторы и мето- ды. В классе Program создаются и инициализируются 2–3 объекта и указанны- ми методами выводится информация. Продемонстрируйте результаты, изменяя параметры.
Спроектируйте класс Transportс полями mоdel (модель), speed (ско- рость), mas (масса) и методами Start, Stop, ShowInfo. Наследуйте от него клас- сы Avto (автомобиль), Moto (мотоцикл), Velo (велосипед).
Спроектируйте класс Animal с полями name (имя), ves (вес),col (цвет) и методами Run (бегать), Sleep(спать), Golos (голос). Наследуйте от него клас- сы Cat (Кот) и Dog (Собака). Переопределите метод Golos для каждого живот- ного (мяу-мяу и гав-гав).
Спроектируйте класс Tovarс полями name (название), price (цена) и ме- тодом Calc (расчет и печать стоимости). Наследуйте от него классы Book (книги) c полем kvo (количество), Pen (ручки) c полем kvo и Сandy (конфеты) c полем ves (вес). Переопределите метод Calc для расчета стоимости каждого товара.