СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Разработка кода ИС Практическая работа №8

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Разработка кода ИС Практическая работа №8»

Практическое занятие № 8

Проектирование иерархии классов

  1. Цель и содержание

Цель лабораторной работы: изучить механизм организации наследования классов.

Задачи лабораторной работы:

  • Научиться объявлять производные классы;

  • Научиться создавать иерархии классов;

  • Научиться использовать механизм полиморфизма.

  1. Теоретическая часть

    1. Наследование реализации

Наследование реализации (implementation inheritance) означает, что тип происходит от базового типа, получая от него все поля-члены и функции-члены.

Синтаксис наследования реализации:

Если при определении класса не указан базовый класс, то C# предполагает, что базовым классом является System.Object.

    1. Создание ирархии классов

При наследовании реализации производный класс наследует реализацию каждой функции базового типа, если только в его определении не указано, что реализация функции должна быть переопределена.

Определим следующую иерархию классов (рис.6.1) и продемонстрируем, как наследуется реализация и как переопределяются свойств и методов.

Рисунок 6.1–Иерархия классов.


Создадим код, описывающий данную иерархию. Определим базовый класс:

Обратите внимание на наличие двух конструкторов, механизм хранения возраста человека и ключевое слово virtual у свойства «ФИО». Ключевое слово virtual указывает, что данное свойство будет переопределено в производном классе.

Определим производный класс «Учитель»:


Следует обратить внимание на использование ключевого слова override у свойства «ФИО», которое указывает на то, что данное свойство имеет новую реализацию, отличающуюся от реализации базового класса.

Определим второй производный класс «Студент»:



В обоих производных классах следует обратить внимание на реализацию конструкторов производных классов, использование ключевого слова base в коде свойства «ФИО» и при объявлении конструкторов.

Также интерес представляют типы данных, используемые для членов- данных: «Специальности», «Ученые Звания», «Ученые Степени». Вот определения данных типов-перечислений:

Наконец, продемонстрируем использование объявленной иерархии классов. В программе объявим массив объектов типа «Человек». Следует понимать,

что при объявлении такого массива, его элементам можно присваивать объекты любого производного класса, причем каждый объект будет вести себя по-своему (за счет переопределения свойств и методов).




В результате работы программы будет осуществлен следующий вывод:



Структуры всегда наследуются от System.ValueType. Они могут также наследовать любое количество интерфейсов. Классы всегда наследуются от одного класса по вашему выбору. Они также могут наследовать любое количество интерфейсов.

  1. Методика и порядок выполнения работы:

  • Создайте консольное приложение.

  • Изучите пример создания иерархии классов, представленный в разделе

«Теоретическое обоснование» данной практической работы.

  1. Ответить на контрольные вопросы:

  1. Что такое наследование реализации? Как описать синтаксически наследование реализации?

  2. Для чего используется ключевое слово base?

  3. Можно ли переопределить метод класса? Свойства класса? Данные класса?

  4. Как переопределить метод в производном классе?

  5. Для чего используется ключевое слово virtual?

  6. Для чего используется ключевое словоo verride?

  7. Как поменять цвет фона в консольном приложении?

  8. Как построить диаграмму типов данных, используемых в приложении средствами Visual Studio?

  9. Сколько базовых классов может быть у любого класса в C#?