Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Интерфейсы и Наследование
Раздел: Интерфейсы
Используя Интерфейс как Тип
Домашняя страница > Изучение Языка Java > Интерфейсы и Наследование

Используя Интерфейс как Тип

Когда Вы определяете новый интерфейс, Вы определяете новый тип справочных данных. Можно использовать имена интерфейса где угодно, можно использовать любое другое имя типа данных. Если Вы определяете ссылочную переменную, тип которой является интерфейсом, любой объект, который Вы присваиваете ему, должен быть экземпляром class, который реализует интерфейс.

Как пример, вот метод для того, чтобы найти самый большой объект в паре объектов для любых объектов, которые инстанцируют от class, который реализует Relatable:

public Object findLargest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ((obj1).isLargerThan(obj2) > 0)
      return object1;
   else 
      return object2;
}

Бросая object1 к a Relatable введите, это может вызвать isLargerThan метод.

Если Вы считаете обязательным для себя реализацию Relatable в большом разнообразии классов объекты, которые инстанцируют от любого из тех классов, могут быть по сравнению с findLargest() метод — при условии, что оба объекта имеют тот же самый class. Точно так же они могут все быть по сравнению со следующими методами:

public Object findSmallest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ((obj1).isLargerThan(obj2) < 0)
      return object1;
   else 
      return object2;
}

public boolean isEqual(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) == 0)
      return true;
   else 
      return false;
}

Эти методы работают на любые объекты "relatable", независимо от того каково их наследование class. Когда они реализуют Relatable, они могут иметь оба их собственных class (или суперкласс) тип и a Relatable ввести. Это дает им некоторые из преимуществ множественного наследования, где у них может быть поведение и от суперкласса и от интерфейса.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Реализация Интерфейса
Следующая страница: Перезапись Интерфейсов