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.