Лабораторная работа №5
Тема: «Наследование в ЯП C#».
Цель работы: «Ознакомиться с механизмами наследования классов ЯП C#, выполнить задания». Основная литература : [2, 3, 4, 6]. Порядок выполнения работы. 1. Ознакомиться с общими сведениями (см. [32, 33]), заданием и контрольными вопросами по лабораторной работе. 2. Ответить на контрольные вопросы. 3. Выполнить задание. 4. Оформить отчет. Содержание отчета 1. Название, цель, содержание работы. 2. Задание. 3. Результаты выполнения работы (сохранить на дискете). 4. Письменные ответы на контрольные вопросы. 5. Выводы по работе. Контрольные вопросы 1. Объясните понятие базового класса. 2. Объясните понятие производного класса. 3. Назначение виртуального метода или свойства. 4. Для каких целей используется ключевое слово override. 5. Если метод или свойство класса объявлено как абстрактное, то этот метод должен быть ... (продолжите предложение). 6. Какие классы могут содержать абстрактные члены? 7. Производный от абстрактного класс обязан реализовать все ... (продолжите предложение). 8. Может ли класс реализовать дополнительные методы доступа для свойств и индексаторов, если в базовом классе определён только один метод? 9. Как запретить наследование класса или его членов можно (объявив их запечатанными)? 34 10. Можно ли из производного класса получить доступ к членам базового, если модификатор доступа к этим членам является private? (не является private?) 11. Каким образом из производного класса можно обратиться непосредственно к членам базового класса, которые были переопределены? 12. Что такое интерфейс? 13. Чем интерфейс отличается от класса? 14. Реализовано ли множественное наследование в ЯП C#? 15. Можно ли создать экземпляр интерфейса? 16. Могут интерфейсы наследовать другие интерфейсы? Приведите пример.
Задание №1: Cоздать uml-диаграмму классов предметной области (по варианту). В зависимости от контекста сделать соответствующие поля или методы класса доступными или скрытыми (модификаторы видимости), зафиксировать наследование классов.
Задание №2: Создать файлы с описанием классов предметной области(предметная область выбирается по варианту) на языке программирования C#. Класс создается в среде программирования Visual Studio (MonoDevelop, SharpDevelop).
Вариант 10. Продемонстрировать использование созданных полей и методов обоих классов.
Задание №3: Создать файл с описанием интерфейса, описывающего поля и методы базового класса из задания №2. Создать производный класс наследующий выше описанный интерфейс
Задание №4: Создать файл с описанием интерфейса, описывающего поля и методы производного класса из задания №2 согласно рекомендуемой последовательности действий
Вариант 10. Классы: базовый «Человек» (Person) и производный «Тренер» (Trainer): Класс «Человек» (аналогично варианту 1) Класс «Тренер» Поля: - Наименование документа удостоверяющего личность - Номер документа - Серия документа - Кем выдан документ - Дата выдачи документа (класс DateTime) - Вид спорта - Год поступления на работу - Место работы (спортивная школа) Свойства: + Наименование документа удостоверяющего личность + Номер документа + Серия документа + Кем выдан документ + Дата выдачи документа (класс DateTime) + Вид спорта + Год поступления на работу + Место работы (спортивная школа) + Стаж работы (только для чтения) Методы: + Инициализация (метод Init) + Определение стажа работы + Переопределение метода ToString() Конструктор