Junior — Middle
U čemu se sastoji primena podrazumevanih metoda u interfejsima i apstraktnim klasama, i kako se razlikuju?
sobes.tech АИ
Одговор од АИ
Podrazumevane metode (default methods) u Java interfejsima su metode sa implementacijom koje omogućavaju dodavanje novih metoda u interfejse bez narušavanja postojećih implementacija. Uvedene su u Java 8.
Primena podrazumevanih metoda u interfejsima:
- Omogućavaju proširenje interfejsa bez lomljenja koda klasa koje ih implementiraju.
- Obezbeđuju osnovnu implementaciju koju je moguće prepisati.
Apstraktne klase mogu sadržavati i apstraktne (bez implementacije) i implementirane metode. Služe za kreiranje osnovne klase sa zajedničkom logikom.
Glavne razlike:
- Interfejs sa podrazumevanim metodama ne može imati stanje (polja), osim konstanti.
- Apstraktna klasa može sadržavati polja i konstruktore.
- Klasa može implementirati više interfejsa, ali nasleđuje samo jednu apstraktnu klasu.
Primer podrazumevane metode u interfejsu:
public interface Logger {
void log(String message);
default void logError(String error) {
log("GREŠKA: " + error);
}
}
Ovde je logError podrazumevana metoda sa implementacijom, koja se može koristiti ili prepisati u klasama koje implementiraju interfejs.