Интерфейсы и трейты в Scala

Как известно, в языке программирования Java существует такое понятие, как интерфейс. Что касается Scala, то здесь аналогом Java-интерфейса является трейт. Давайте посмотрим, как он используется на практике.

Вообще, трейт в языке программирования Scala объявляется с помощью соответствующего ключевого слова, которое так и называется: trait. При этом, как и в случае с Java-интерфейсами, трейты включают в себя лишь объявления методов, то есть они допускают множественное наследование.

Но есть и отличие от интерфейса, которое заключается в том, что в трейте вы сможете описать поля класса, а также частично реализовывать методы. Причем наследование и трейтов, и абстрактных классов реализуется посредством extend (это первый родитель) и with (это последующие родители).

Что же, осталось посмотреть пример использования:

Также имейте в виду, что ключевое слово override обязательным не является, однако его применение -- это все же хорошая практика.

По материалам tproger.ru.