Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕон€тие интерфейса




 

—лово "интерфейс" - многозначное, и в разных контекстах оно имеет различный смысл. —уществует пон€тие программного или аппаратного интерфейса, но в большинстве случаев слово интерфейс ассоциируетс€ с некоторой св€зью между объектами или процессами. ¬ данной лекции речь идет о пон€тии интерфейса, сто€щем за ключевым словом interface. ¬ таком понимании интерфейс - это частный случай класса.

»нтерфейс представл€ет собой полностью абстрактный класс, все методы которого абстрактны.

ќт абстрактного класса интерфейс отличаетс€ некоторыми детал€ми в синтаксисе и поведении.

—интаксическое отличие состоит в том, что методы интерфейса объ€вл€ютс€ без указани€ модификатора доступа.

ќтличие в поведении заключаетс€ в более жестких требовани€х к потомкам.  ласс, наследующий интерфейс (интерфейсный класс), об€зан полностью реализовать все методы интерфейса. ¬ этом отличие от класса, наследующего абстрактный класс, где потомок может реализовать лишь некоторые методы родительского абстрактного класса, остава€сь абстрактным классом.

¬ажное отличие интерфейсного класса от обычного класса заключаетс€ в том, что он может наследовать несколько родительских интерфейсов. “аким образом, в —# разрешено множественное наследование, но только в интерфейсных классах.

–одительские интерфейсы перечисл€ютс€ в списке за именем класса и двоеточием:

public interface INewClass: IInt1, IInt2,..., IIntN

{...}

“акого рода интерфейсные классы об€заны содержать реализации всех методов всех родительских интерфейсов.

«амечу, что интерфейсный класс может наследовать не только от интерфейсов, но и от одного (и только одного!) обычного класса, по отношению к которому он ведет себ€ как обычный наследник, то есть может переопредел€ть его методы, добавл€ть пол€ и т. д.

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

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

—клеивание методов. ¬ этом случае интерфейсный класс полагает, что у всех одноименных методов должна быть одинакова€ программна€ реализаци€, и объ€вл€ет этот единственный метод дл€ реализации всех одноименных методов своих родителей.

ѕереименование методов. ≈сли реализаци€ одноименных методов должна быть различной, методы переименовываютс€.

ќтметим еще одно важное назначение интерфейсов, отличающее их от абстрактных классов. јбстрактный класс представл€ет собой начальный этап проектировани€ класса, который в будущем получит конкретную реализацию. »нтерфейсы задают дополнительные свойства классу.  аждый интерфейс надел€ет класс тем или иным новым свойством.

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-05; ћы поможем в написании ваших работ!; просмотров: 499 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ќаука Ч это организованные знани€, мудрость Ч это организованна€ жизнь. © »ммануил  ант
==> читать все изречени€...

515 - | 446 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.007 с.