Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лекция 4 Наследование классов

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 16.5.2024

PAGE   \* MERGEFORMAT4

Лекция 4. Наследование классов.

Наследование, наряду с инкапсуляцией и полиморфизмом, является одним из трех принципов, определяющих концепцию объектно-ориентированного программирования.

 Наследование означает что один класс (производный ) может принимать свойства другого (базового = родительского). Свойство наследования транзитивно (если класс В является наследником класса А, а класс С является наследником класса В, то таким образом класс С наследует (транзитивно) свойства класса А).

Наследование позволяет многократно использовать одинаковые программные  элементы без необходимости их повторного создания. Например, визуальные элементы наследуют класс Point, позволяющий задавать координаты точки на экране, соответственно разные элементы управления могут использовать этот класс для задания своего месторасположения. 

При описании производного класса указывается базовый класс (ТОЛЬКО ОДИН):

 class имя : имя_базового_класса

{ ... }

При создании объекта производного класса, его конструктор автоматически вызывает конструктор базового класса.

Конструктор производного класса может явно вызвать конструктор базового класса с помощью ключевого слова base (), в скобках указываются передаваемые аргументы.

Производный класс имеет доступ ко всем НЕ ЗАКРЫТЫМ полям базового класса. В производном классе возможен доступ к закрытым переменным базового класса с помощью открытых Properties. Так же в производном классе доступны поля с атрибутом доступа protected. Базовый класс НЕ ИМЕЕТ доступ к членам производного класса.

В производном классе можно определить член класса, имеющий такое имя, которое уже существует в базовом классе (оно скрывается), для этого перед его описанием указывается new. Для доступа к скрытому члену класса используется ключевое слово base. Например base.имя_базового_класса.

Если существует переменная, ссылающаяся на объект базового класса, ей можно присвоить ссылку на объект производного класса, НО такой переменной будут доступны только поля базового класса, хотя она ссылается на объект производного класса!

В базовом классе могут быть объявлены методы с модификатор virtual.  Такие методы могут переопределяться в производных классах – указывается модификатор override. Важно, что при вызове переопределенного метода правильный тип вызываемого метода определяется ТИПОМ ОБЪЕКТА (во время выполнения программы), а не типом ссылки как при вызове переменных. Переопределяемый метод не может быть статическим, он должен полностью совпадать по сигнатуре с методом базового класса.

Таким же образом переопределяются и свойства.

Ещё одним типом методов, требующих определения в производных классах являются абстрактные методы (модификатор abstract, модификатор virtual НЕ указывается, в производных классах модификатор override указывается). Такие методы не имеют тела. Класс с абстрактными методами (свойства) обязательно объявляется как абстрактный, он не может иметь объекты. Производный(е) класс должен реализовать ВСЕ абстрактные методы если требуется создавать экземпляры такого класса.

В C# можно запретить создание производных классов, для этого при объявлении класса указывается модификатор sealed. Этот модификатор можно применять к методам для запрета их дальнейшего переопределения.

В C# все классы являются производными от класса object. Это означает, что переменная ссылочного типа может ссылаться на объект любого другого класса. Некоторыми часто используемыми методами этого класса являются: ToString(), Equals(), GetType().

Для проверки типа объекта можно использовать оператор  is

переменная is  тип

который возвращает true при совпадении типа проверяемой переменной с заданным в сравнении типом.

Пример int i; if (i is int) MsgBox.Show(“Tip sovpal”).

Оператор TypeOf(тип) позволяет получить информацию о конкретном типе, например свойство FullName возвращает полное имя типа.

Пример наследования

Необходимо создать класс, моделирующий предмет бытовой техники.

Класс должен содержать следующую информацию:

1) название предмета (любое)

2) название фирмы (любое)

3) цена (не допускается <0, может быть незаполненной)

4) масса предмета (не допускается <0, может быть незаполненная)

5) мощность (кВт/час, не допускается <0, может быть незаполненная)

6) тип предмета (в зависимости от массы: <5 кг – малый; , 5-20кг – средний; более 20 кг – крупный, другие значения не допускаются)

7) энергопотребление (рассчитывается от введенного времени работы*мощность)

На его основании создается класс, моделирующий мультимедийную технику (с экраном и переопределением метода).




1. реферату Персонал підприємстваРозділ Економіка підприємства Персонал підприємства Класифікація і стру
2. Лекция 22 Ювенильный ревматоидный артрит В группу коллагеновых заболеваний входит значительное колич
3. Расчет ленточного ковшового элеватора
4. 1 8 1 6 Державин начал печататься в 1773 году однако это не было началом его литературной деятельности
5. тематического анализа является производная которая определяет скорость изменения функции
6. Статья 31 Аккредитация органов по сертификации и испытательных лабораторий центров1
7. представляет собой регулируемый стабилизатор напряжения компенсационного типа в корпусе КТ282 который по
8. Основные средства
9. 1904 утверждал что нельзя относиться к обществу как агрегату физических тел и явлений
10. Инвестиции международный деловой журнал дата 19940601 номер 1 рубрика Законодательство и правоприменительная п.html
11. Таможенное регулирование внешнеэкономической деятельности ВЭД
12. вариантность сырьевой базы возможность комплексного использования сырья с получением разных продуктов мно
13. ЗАДАНИЕ 1 ПРОКОММЕНТИРУЙТЕ ВЫСКАЗЫВАНИЕ- 1
14. Конгресс США
15. . Таблица 1 заполняется на основе измерений личных отдельных частей тела в разных положениях и позах.
16. вариантов доставки ценности целевой группе потребителей по четырем аспектам- а сфера бизнеса компании спец
17. Работа с массивами и решение систем уравнений в Mathcad
18. Конспект лекций; П
19. Лабораторная работа 15 Тема- Разработка алгоритмов и программ решения различных задач с использован
20.  Восстановление и дальнейшее развитие народного хозяйства СССР после Великой Отечественной войны