Interfejs to „szablon” zawierający elementy, które muszą być użyte w klasach, które go zaimplementują. Interfejsy mogą zawierać tylko stałe i deklaracje metod. Implementacja interfejsu w danej klasie odbywa się za pomocą słowa kluczowgo implements.

Konstrukcja interfejsu:

Implementacja interfejsu:

W odróżnieniu od dziedziczenia dana klasa może implementować wiele interfejsów:

Interfejsy mogą również dziedziczyć po wielu interfejsach:

Przykład interfejsu:

Zwróć uwagę, że interfejs FiguraGeometryczna mówi klasie „co ma zrobić”, ale nie mówi w jaki sposób ma to zrobić. Mamy tylko deklaracje nazw metod: Pole() i Obwod(). Wszystkie stałe i metody interfejsu są domyślnie publiczne i abstrakcyjne dlatego nie jest wymagane pisanie przed nimi słów kluczowych np: public.

Analizując ten prosty interfejs możemy z łatwością domyślić się, że będzie on kazał klasie obliczyć pole i obwód danej figury geometrycznej.

Napiszmy więc klasę Kwadrat i wprowadźmy do niej odpowiednie wzory:

Obie metody (Pole i Obwod) zwracają wynik działania. Dodajmy jeszcze jedną figurę – prostokąt. Klasa Prostokat, podobnie jak Kwadrat implementuje interfejs FiguraGeometryczna.

Klasy Kwadrat i Prostokat muszą zaimplementować wszystkie metody interfejsu FiguraGeometryczna, ale nic nie stoi na przeszkodzie, aby posiadały dodatkowe metody wewnątrz własnych klas np: wzór na przekątną.

Na koniec stwórzmy klasę testującą nasz program – FiguraGeometrycznaTest:

Czytaj dalej: PRZECIĄŻANIE METOD →