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

Курсы

Программирование
Java Developer. Professional Highload Architect C++ Developer. Basic Специализация C++ Developer C++ Developer. Professional Java Developer. Basic Kotlin Developer. Basic Microservice Architecture JavaScript Developer. Basic Cloud Solution Architecture Team Lead C# Developer. Professional Алгоритмы и структуры данных Rust Developer C# Developer. Basic NoSQL Выбор профессии в IT
-99%
Python Developer. Basic Python Developer. Professional Базы данных iOS Developer. Professional React.js Developer Scala-разработчик Специализация iOS Unity Game Developer. Basic MS SQL Server Developer Kotlin Backend Developer Node.js Developer Symfony Framework PHP Developer. Basic Буткемп Java Groovy Developer
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

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

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

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

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

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

1-1801-be5d99.png

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

1-1801-4f11cf.png

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

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться