Interfejsy

Kliknij i wspomóż mnie :)

Kotlin

Interfejsy 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.

  • Do tworzenia używane jest słowo kluczowe interface
  • Klasy mogą implementować jeden lub więcej interfejsów
  • Mogą posiadać implementacje metod
  • Nie mogą posiadać stanów
  • Mogą posiadać pola pod warunkiem, że implementują metody dostępu (get() i set())
  • Interfejsy mogą implementować inne interfejsy
  • Interjes implementujemy za pomocą operatora ":"

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 ukazuje strona java-start.

Java-start - interfejs funkcyjny
  • 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.

SAM Conversion

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

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

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