Глава 10. Интерфейсы
209
Может случиться так, что в разных интерфейсах находится один и тот
же метод (заголовок один и тот же). Как этот метод реализовать в под-
ключающем их классе? Ведь когда создавались интерфейсы (и, возмож-
но, разными разработчиками), очевидно, что у них предполагалась раз-
ная функциональность. То есть надо добиться того, чтобы для одного
интерфейса в классе метод реализовывал одну функциональность, а для
метода с тем же заголовком — другую функциональность. Очевидно,
реализация должна быть с добавкой префикса к имени интерфейса
с точкой к имени метода. Например, для метода
price()
в разных ин-
терфейсах надо было бы писать при его реализации в классе:
double
interf1.price() {реализация}
, а для этого же метода в другом интер-
фейсе —
double interf2.price() {реализация}
.
Интерфейсы могут наследовать. У них допускается множественное на-
следование (один интерфейс может наследовать от многих). Синтаксис
наследования — такой же, как у классов, а перечень родителей, от кото-
рых идет наследование, разделяется запятыми.
210
Часть II. Объектно-ориентированное программирование
ГЛ А В А
11
Сборки, манифесты,
пространства имен.
Утилита IL DASM
Для лучшего понимания дальнейшего материала рассмотрим некоторые
понятия и технологию работы среды исполнения.
Common Intermediate Language(сокращенно CIL) — промежуточный
язык, разработанный фирмой Microsoft для платформы .NET
Framework. Компиляторы со всех языков, с которыми работает
платформа .NET, переводят программы с этих языков в промежу-
точный язык CIL. Пример показан на рис. 11.1. Язык CIL по синтак-
сису и мнемонике напоминает язык ассемблера. В то же время язык
CIL содержит некоторые достаточно высокоуровневые конструкции,
повышающие его уровень по сравнению с ассемблером для любой
реально существующей машины, и писать код непосредственно на
CIL легче, чем на ассемблере для реальных машин. Поэтому его
можно рассматривать как своеобразный "высокоуровневый ассемб-
лер". Язык CIL также нередко называют просто IL (Intermediate
Language), т. е. "промежуточный язык".
Common Language Runtime (CLR) — общая языковая среда исполне-
ния программ на языках .NET.
Just in Time (JIT) — компилятор c языка CIL. Является частью назы-
ваемой CLR. Прямо в момент исполнения программа транслируется
в машинный язык и исполняется.
Код программы — команды программы после их компиляции.
Метаданные платформы .NET — специальные структуры данных,
добавляемые в код программы на языке CIL. Метаданные описыва-
ют все классы и члены классов, а также классы и члены классов, ко-
212
Do'stlaringiz bilan baham: |