Wpis z mikrobloga

Czytam książkę o #java
Jest tu takie zdanie :
"Choć można deklarować zmienne, używając interfejsu jako ich typu, nie jest możliwe utworzenie instancji obiektu, którego typem będzie interfejs. Wszystkie obiekty muszą być instancjami klas. "
Moglby mi to ktoś lepiej wyjaśnić?
Skoro nie mogę mieć instancji interfejsu to po co mi zmienna o typie interfejsu? Ogólnie trochę zakręcone to zdanie, a nie podano przykładu.
#programowanie #naukaprogramowania
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@FantaZy: polimorfizm to słowo klucz. Możesz mieć zmienna która inicjalozujesz jakaś fabryka i jaka dokładnie zwraca ona klasę ci wisi - dopóki implementuje interfejs
  • Odpowiedz
@FantaZy: zmienna o typie interfejsu nie musi zawierać (a właściwie w javie nawet nie może) zawierać obiektu typu interfejs, ale może zawierać obiekt klasy implementującej interfejs. Tak jak z klasami abstrakcyjnymi nie może być obiektu typu klasa abstrakcyjna, ale zmienna tego typu już tak.
Robi się tak dlatego by wykorzystać założenia obiektowości - masz klasę implementującą interfejs, to możesz wykorzystywać metody interfejsu nawet nie wiedząc jaka to dokładnie klasa, wystarczy
  • Odpowiedz