Kotlin - Interfejsy

Interjesy są bardzo wygodnym sposobem na rozszerzanie naszej klasy bazowej o nowe funkcjonalności. W Kotlin'ie różnią się one nieco od tych Jav'owych.

Wstęp

Na początku krótko omówię cechy charakterystyczne dla interfejsów w Kotlin'ie.

Deklaracja

Stworzyłem prosty interfejs pojazdu. Jak widać posiada on 3 metody, które klasa dziedzicząca będzie musiała nadpisać.

Co to znaczy, że będzie musiała? Interfejs jest kontraktem, czyli zestawem funkcjonalności wymaganych koniecznie bez względu na inne funkcje czy pola.

Na przykładzie widać, iż spokojnie możemy napisać prostą implementację w interfejsie dla getName().

Implementacja

Samochód jest pojazdem, dla tego dobrze, żeby posiadał przynajmniej podstawowe cechy pojazdu.

Dla tego musi on zaimplementować metody drive(), stop() i getName(). Nie przeszkadza to jednak w tym, żeby wykonał drift :)

Interfejsy funkcyjne

Bardzo dobrą definicję interfejsu funkcyjnego w javie daje strona java-start

Interfejs funkcyjny jest interfejsem, który posiada tylko jedną metodę abstrakcyjną. Pozwala on w Javie (od wersji 8) na wykorzystanie wyrażeń lambda w miejsce, gdzie normalnie kompilator oczekuje takiego typu danych. Interfejsy funkcyjne opcjonalnie oznaczane są adnotacją @FunctionalInterface.

Interfejsy funkcyjne w Kotlin'ie

W tym języku można powyższy kod jeszcze uprościć za pomocą SAM

Cały interfejs został przeniesiony jako zmienna do konstruktora.

Dziękuję Ci za przeczytanie tego materiału. Mam nadzieję, że udało mi się nieco przybliżyć Tobie temat interfejsów :)

shop
Otwórz Sklep Play

Zachęcam cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.