вторник, 26 апреля 2011 г.

с. 251 (Черновик) Свойства интерфейсов

"... оператор instanceof проверяет, принадлежит ли объект заданному классу. Однако с помощью этого оператора можно также проверять, реализует ли объект заданный интерфейс."
Одна из тех простых вещей, которая часто вылетает из головы.
Вопрос: Как проверить, реализует ли класс заданный интерфес?
Ответ:  С помощью оператора instanceof.
-----
"Аналогично классам интерфейсы также могут образовывать иерархию наследования."
Вопрос: Может ли один интерфейс наследовать другой интерфейс?
Ответ: Да.
Вопрос: Может ли один интерфейс наследовать несколько других интерфейсов?
Ответ: Да.
-----
"... все методы в интерфейсе автоматически объявляются открытыми. Аналогично константы в интерфейсе всегда являются открытыми статическими и терминальными."
А разве константа может быть не терминальной?
Вопрос: Как можно объявить в интерфейсе переменную?
Ответ: Никак. В интерфейсе можно объявить только константу.
Вопрос: Какими характеристиками обладают объявленные в интерфейсе свойства?
Ответ: Они являются открытыми статическими терминальными.
-----
"В некоторых интерфейсах объявляются только константы и ни одного метода."
При наследовании таких интерфейсов можно использовать объявленные в них константы напрямую, без указания имени интерфейса.
-----
"... любой класс может реализовывать несколько интерфейсов."
-----

1 комментарий:

  1. Насчёт интерфейса только из констант - многие считают что это антипаттерн
    http://www.jroller.com/ksevindik/entry/some_thoughts_about_constant_interface

    В Java5 есть import static которым можно импортировать константы из класса

    ОтветитьУдалить