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.