2012-05-17 3 views

ответ

2

Посмотрите на интерфейсы, такие как java.util.Collection, java.util.Set, чтобы узнать, как это делается, и как можно сжимать контракты.

7

Вы расширяете интерфейс, когда субинтерфейс обеспечивает все, что обеспечивает суперинтерфейс, и делает что-то еще важное. Например, SortedMap<K,V> реализует Map<K,V>, потому что отсортированная карта - это карта, которая поддерживает все операции с картой, а также некоторые операции, применимые только к отсортированным картам.

Это похоже на наследование между классами, но допускает множество реализаций. Например, можно реализовать SortedMap как отсортированный список ключей плюс параллельный массив значений, а не дерево. Это позволит пользователям выполнять более быструю или более эффективную реализацию без изменения остальной части кода. Другими словами, наследование между интерфейсами позволяет сохранить преимущества программирования для интерфейсов.

0
  1. Если мы хотим использовать множественное наследование в нашем приложении, то один интерфейс должен расширять другой интерфейс.

  2. Чтобы сделать параллельную разработку вашего приложения, очень необходимо написать свой код таким образом, чтобы вы могли вносить новые обнаруженные требования в существующий код как можно безболезненно. Таким образом, если мы реализуем интерфейс, то конкретные имена классов блокируют вас в конкретных реализациях, что делает ненужные изменения без изменений. Поэтому мы расширяем интерфейс.

Смежные вопросы