Інтерфейси-JAVA ДЛЯ ANDROID

&nbsp

В інших мовах програмування (наприклад, С + +, Python і Perl) існує можливість, звана множинним спадкуванням реалізації (multiple implementation inheritance) При цьому обєкт може успадковувати реалізації методів більш ніж від одного батьківського класу Такі ієрархії успадкування можуть бути дуже складні і проявляти несподівані властивості (наприклад, успадковувати дві однойменні змінні поля від двох різних суперкласів) Розробники Java вирішили відмовитися від множинного спадкоємства реалізації на користь простоти мови На відміну від зазначених мов, в Java клас може доповнювати тільки один суперклас

Проте натомість багаторазового успадкування реалізації Java дозволяє класу успадковувати властивості від декількох типів, використовуючи при цьому концепцію інтерфейсу Інтерфейси дозволяють визначати тип, не визначаючи при цьому його реалізацію Інтерфейс можна вважати абстрактним класом, всі методи якого теж абстрактні Кількість інтерфейсів, які може реалізувати той чи інший клас, не обмежена

Крім того, інтерфейси надають спосіб визначення типу окремо від реалізації цього типу Подібне розділення можна уявити собі і в повсякденному житті Наприклад, якщо ви з колегою хочете приготувати мохіто, то можна розподілити завдання і послати колезі за мятою Коли ви починаєте змішувати інгредієнти в стакані, вже неважливо, чи купив колега мяту в магазині або сходив у двір і просто нарвав свіжих листя Важливо, що у вас є мята

В якості іншого прикладу, що ілюструє потенціал інтерфейсів, розглянемо програму, яка має відображати список контактів, відсортованих за адресами електронної пошти Як ви розумієте, в бібліотеках Android містяться стандартні процедури для сортування обєктів Однак оскільки ці процедури є стандартними, в них не закладена ідея про те, як має відбуватися впорядкування елементів конкретного класу Щоб скористатися бібліотечними процедурами сортування, класу потрібен спосіб визначення такого порядку У Java класи вирішують цю задачу за допомогою інтерфейсу Comparable

Обєкти типу Comparable реалізують метод compareTo Один обєкт приймає інший схожий обєкт як аргумент і повертає ціле число, яке вказує, чи є обєкт-аргумент великим, рівним чи меншим, ніж цільовий Бібліотечні процедури здатні сортувати все, що є compareTo Програмний тип Contact повинен бути compareTo і реалізовувати compareTo, щоб контакти могли бути відсортовані:

З внутрішньосистемної точки зору процедурі Collections, sort відомо лише про те, що contacts – це список елементів, що відносяться до типу Comparable Процедура активує що відноситься до класу метод compareTo, щоб вирішити, як впорядкувати ці елементи

Як видно з цього прикладу, інтерфейси дозволяють розробнику багаторазово використовувати стандартні процедури, які можуть впорядкувати будь-який список обєктів, який реалізує Comparable Якщо вийти за рамки цього простого прикладу, то можна сказати, що інтерфейси Java дозволяють втілювати на практиці різні патерни програмування, добре описані в інших джерелах

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*