Интерфейсы в Java. Часть 2
В прошлой статье об интерфейсах в Java, мы разобрались с тем, что такое интерфейс вообще. А в данной стать рассмотрим особенности интерфейсов в Java подробнее, а именно, что такое методы по умолчанию в интерфесах Java.
Итак, интерфейс не реализует поведение. Его задача — описать, какое поведение должны иметь все объекты, которые его реализуют.
Допустим у нас есть следующий пример:
// класс - животное
interface Animal
{
void move(); // может ходить
void hant(); // может охотиться
}
class Dog implements Animal
{
@Override
void move()
{
System.out.println("Может передвигаться");
}
@Override
void hant()
{
System.out.println("Может охотиться");
}
}
class Cat implements Animal
{
@Override
void move()
{
System.out.println("Может передвигаться");
}
@Override
void hant()
{
System.out.println("Может охотиться");
}
}
Как видете и (Cat)кошка и (Dog)собака могут бегать и охотиться. И поэтому в обоих классах мы реализовали идни и теже методы. Но представтье, что у Вас несколько десятков классов, которые должны содержать похожую функциональность. Что делать в этом случае? На помощь приходят дефолтные методы или методы по умолчанию интерфейсов Java. Вот как код будет выглядеть при применении этих методов:
// класс - животное
interface Animal
{
default void move()
{
System.out.println("Может передвигаться");
}
default void hant()
{
System.out.println("Может охотиться");
}
}
class Dog implements Animal {}
class Cat implements Animal {}
Как видите код наш значительно сократился, при этом он сохранил всю свою функциональность. А все благодоря ключевому слову default, которое позволяет использовать в интерфейсе реализацию метода по умолчанию, которое будет доступно для всех классов реализующих данный интерфейс.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.