Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 24.11.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. именно что на свете не существует ничего подобного материальной субстанции
3. по собственному желанию однако в личных разговорах большинство из них в качестве причины ухода называли н
4. Ответственность и этика в менеджменте
5. НАЗНАЧЕНИЕ СОСТАВНЫЕ ЭЛЕМЕНТЫ ПРИНЦИПЫ ПОСТРОЕНИЯ СЕТИ ТЕЛЕВИЗИОННОГО ВЕЩАНИЯ И ПЕРСПЕКТИВЫ ЕЕ РАЗВИТИЯ
6. Введение. Продовольственная безопасность
7. преследователи Да мало ли чего ещё
8. английски очень хорошо
9. нибудь или распечатай чтобы ты мог их периодически просматривать и практиковаться.
10. ТЕМА- АСЕПТИКА Асептика мероприятиянаправленные на предупреждени
11. психологических типа- пикники атлетики астеники ~ охарактеризуйте их Тип нервной системы- сангвиник фл
12. Теоретические основы контрольно-ревизионной деятельности
13. ФЗ РОССИЙСКАЯ ФЕДЕРАЦИЯ ФЕДЕРАЛЬНЫЙ ЗАКОН О ДОПОЛНИТЕЛЬНОМ ЕЖЕМЕСЯЧНОМ МАТЕРИАЛЬНОМ ОБЕСПЕ
14. Topic Wht I hve lerned bout the topic
15. Тема- Разработка документа Расчётная ведомость сотрудников отдела
16. Нормофлора выращивание препараты
17. Sliding можно листать страницы на рабочем столе фотографии в альбоме; фотовидело камера 0.
18. Правонарушения в области стандартизации
19. Реферат- Возрождение как художественное явление на примере творчества Леонардо да Винчи
20. Темазепам Диазепам Феназепам Флурозепам; Препараты разного химического строения- Золпидем Зопиклон