Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

SetFullName (fullName);

Пример 1. | Построение цепочки вызовов конструкторов с использованием this. | Инкапсуляция с использованием традиционных методов доступа и изменения | Инкапсуляция с использованием свойств .NET | Свойства, доступные только для чтения и только для записи | Статические свойства | Ключевые слова virtual и override | Абстрактные классы | Полиморфный интерфейс | Сокрытие методов |


Pay = currPay;

ssn= ssn;

}

В результате был неявно создан довольно неэффективный конструктор, учитывая тот факт, что в С#, если не указать иного, конструктор базового класса вызывается автоматически перед выполнением логики производного конструктора. После этого момента текущая реализация имеет доступ к многочисленным public -свойствам базового класса Employee для установки его состояния.

Для оптимизации создания производного класса необходимо хорошо реализовать конструкторы подкласса, чтобы они явно вызывали специальный конструктор базового класса вместо конструктора по умолчанию. Поступая подобным образом, можно сократить количество вызовов инициализаций унаследованных членов (что уменьшит время обработки). Модифицируем специальный конструктор класса Manager, применив ключевое слово base:

(этот код вставляем в проект EmployeeExample, класс Manager)

Задание!!!: протестировать, исправить возможные ошибки

 

Здесь ключевое слово base ссылается на сигнатуру конструктора (подобно синтаксису, используемому для сцепления конструкторов на единственном классе с использованием ключевого слова this), что всегда указывает на то, что производный конструктор передает данные конструктору непосредственного родителя. В данной ситуации явно вызывается конструктор с четырьмя параметрами, определенный в Employee, что избавляет от излишних вызовов во время создания экземпляра базового класса.

Задание!!! Реализовать аналогичным образом специальный конструктор для класса SalesPerson.

 

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

 


Дата добавления: 2015-07-25; просмотров: 67 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Статические конструкторы| Ключевое слово sealed

mybiblioteka.su - 2015-2024 год. (0.005 сек.)