Sobes.tech
Junior

У чему се састоји разлика између апстрактних класа и интерфејса?

sobes.tech АИ

Одговор од АИ

Apstraktna klasa:

  • Može sadržavati apstraktne (bez implementacije) i konkretne (sa implementacijom) metode.
  • Može sadržavati polja (promenljive instance).
  • Može imati konstruktore.
  • Dozvoljava jednostruko nasleđivanje (jedna klasa može nasleđivati od apstraktne klase).
  • Koristi se za definisanje osnovne strukture i opšteg ponašanja za povezane klase.

Interfejs:

  • Može sadržavati samo apstraktne metode (neki jezici, poput Jave od verzije 8, dozvoljavaju default i static metode sa implementacijom).
  • Ne može sadržavati polja instance (samo konstante).
  • Ne može imati konstruktore.
  • Dozvoljava višestruku implementaciju (jedna klasa može implementirati više interfejsa).
  • Koristi se za definisanje ugovora koji klase moraju da implementiraju.