Sobes.tech
Junior

Na czym polega różnica między klasami abstrakcyjnymi a interfejsami?

sobes.tech AI

Odpowiedź od AI

Klasa abstrakcyjna:

  • Może zawierać metody abstrakcyjne (bez implementacji) i konkretne (z implementacją).
  • Może zawierać pola (zmienne instancji).
  • Może mieć konstruktory.
  • Umożliwia pojedyncze dziedziczenie (jedna klasa może dziedziczyć po klasie abstrakcyjnej).
  • Służy do określenia podstawowej struktury i ogólnego zachowania powiązanych klas.

Interfejs:

  • Może zawierać tylko metody abstrakcyjne (niektóre języki, np. Java od wersji 8, pozwalają na metody domyślne i statyczne z implementacją).
  • Nie może zawierać pól instancji (tylko stałe).
  • Nie może mieć konstruktorów.
  • Umożliwia wielokrotną implementację (jedna klasa może implementować wiele interfejsów).
  • Służy do określenia kontraktu, który muszą spełniać klasy.