Переопределение (redefinition)

Переопределение (redefinition)

Когда класс является наследником другого класса, может потребоваться изменить реализацию или другие свойства некоторых наследованных компонент. Класс SESSION, управляющий сеансами пользователей в операционной системе, может иметь компонент terminate, выполняющий чистку в конце сеанса. Его наследником может быть класс REMOTE_SESSION, управляющий сеансом удаленного компьютера в сети.

Если завершение удаленного сеанса требует дополнительных действий, таких как, например, уведомление удаленного компьютера, класс REMOTE_SESSION переопределит компонент terminate.

Переопределение может повлиять на реализацию компонента, его сигнатуру (тип аргументов и результата) и спецификацию.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Переопределение элементов System.Object, заданных по умолчанию

Из книги автора

Переопределение элементов System.Object, заданных по умолчанию Хотя заданное по умолчанию поведение System.Object может оказаться вполне приемлемым в большинстве случаев, вполне обычным для создаваемых вами типов будет переопределение некоторых из унаследованных методов. В главе


Переопределение System.Object.ToString()

Из книги автора

Переопределение System.Object.ToString() Переопределение метода ToString() дает возможность получить "снимок" текущего состояния объекта. Это может оказаться полезным в процессе отладки. Для примера давайте переопределим System.Object.ToString() так, чтобы возвращалось текстовое представление


Переопределение System.Object. Equals()

Из книги автора

Переопределение System.Object. Equals() Давайте переопределим и поведение System.Object.Equals(), чтобы иметь возможность работать с семантикой, основанной на значениях. Напомним, что по умолчанию Equals() возвращает true (истина), когда обе сравниваемые ссылки указывают на один и тот же объект в


Переопределение System.Object.GetHashCode()

Из книги автора

Переопределение System.Object.GetHashCode() Если класс переопределяет метод Equals(), следует переопределить и метод System.Object.GetHashCode(). Не сделав этого, вы получите предупреждение компилятора. Роль GetHashCode() – возвратить числовое значение, которое идентифицирует объект в зависимости от его


Переопределение System.Object.Finalize()

Из книги автора

Переопределение System.Object.Finalize() В тех редких случаях, когда воздается C#-класс, использующий неуправляемые ресурсы, нужно гарантировать, что соответствующая память будет обрабатываться прогнозируемым образом. Предположим, что вы создали класс MyResourceWrapper, использующий


9.6.2.2. Переопределение дескрипторов (handle)

Из книги автора

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


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

Из книги автора

Переопределение набора символов Имея глобальный набор символов по умолчанию для базы данных, вы можете при необходимости в дальнейшем переопределить его. Вы можете включить атрибут набора символов при определении домена. Вы можете переопределить значение набора


Переопределение клавиш Soft Key

Из книги автора

Переопределение клавиш Soft Key На смартфонах клавиши Soft Key 1 и Soft Key 2 используются для управления меню. Если попробовать переопределить эти клавиши для других задач, то у вас ничего не получится. Дело в том, что события Key_Down не распознаются системой для этих клавиш, если на


Переопределение методов базового класса

Из книги автора

Переопределение методов базового класса В порожденном классе можно определить методы и элементы данных с именами, которые уже используются в базовом классе. Соответствующие методы и элементы данных базового класса оказываются скрыты. Чтобы обратиться к ним, необходимо


Переопределение и утверждения

Из книги автора

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


Явное переопределение

Из книги автора

Явное переопределение Роль предложения redefine состоит в улучшении читаемости и надежности. Компиляторам, на самом деле, оно не нужно, так как в классе может быть лишь один компонент с данным именем, то объявленный в данном классе компонент, имеющий то же имя, что и компонент


Смена имен и переопределение

Из книги автора

Смена имен и переопределение В предыдущей лекции мы обсудили переопределение компонентов, полученных по наследству. (Помните, что переопределение эффективного компонента задает его новое определение, а для отложенного компонента задает его реализацию.) Сравнение