Gdzie dysków sześć, tam ciągle się Windows wiesza
Java - Interfejsy

Interfejs jest czymś podobnym do klasy. Jego podstawowe cechy charakterystyczne, to:

  • wszystkie jego metod muszą być abstrakcyjne;
     
  • wszystkie jego metody są publiczne i abstrakcyjne;
     
  • jeśli posiada pola danych, to są one domyślnie publiczne, finalne i statyczne (ang. public, final i static) co oznacza, że są stałymi;
     
  • może dziedziczyć z innych interfejsów, ale nie może dziedziczyć z klas;
     
  • opisuje zbiór właściwości, które potomna klasa musi implementować.
     
Definicja interfejsu wygląda następująco:
 
	   [modyfikator]  interface  NazwaInterfejsu  [extends  ListaInterfejsów]
	   {
		   . . .
	   }

Relację dziedziczenia przez klasę z interfejsu wyrażamy za pomocą słów kluczowego implements. Każda klasa implementująca interfejs, musi posiadać definicję wszystkich metod zadeklarowanych w interfejsie. Jeśli choć 1 metoda nie będzie zadeklarowane w klasie, to klasa będzie klasą abstrakcyjną.

Możliwe jest implementowanie przez klasę wielu interfejsów. Mechanizm implementacji interfejsów rozwiązuje problem podobny do wielodziedziczenia klas Nie jest to jednak prawdziwa wielodziedzicznie, gdyż:

  • nie można dziedziczyć zmiennych z interfejsu;
     
  • nie można dziedziczyć implementacji metod;
     
  • hierarchia interfejsu jest niezależna od hierarchii klas; klasy które implementują ten sam interfejs mogą zarówno być, jaki i nie być powiązane przez hierarchię klas, co nie jest prawdą w przypadku wielodziedziczenia.
     
« wstecz   dalej »