Junior
147
De ce în unele interfețe nu sunt definite metode?
Răspuns de la AI
sobes.tech AI
Aceste tipuri de interfețe sunt numite interfețe marker (marker interfaces). Ele nu conțin metode și sunt folosite pentru a marca clase, indicând compilatorului sau JVM-ului anumite proprietăți sau semantici ale clasei.
Exemple:
java.io.Serializable: Marchează o clasă ca fiind serializabilă.java.lang.Cloneable: Indică faptul că obiectul poate fi clonat.java.util.RandomAccess: Optimizează accesul aleatoriu la elementele listei.
Avantaje:
- Semantica: Indică în mod explicit intenția dezvoltatorului față de clasă.
- Polimorfism: Permite utilizarea apelurilor polimorfe, lucrând cu un grup de clase care implementează o interfață marker.
- Adnotare: Pot fi folosite pentru a oferi informații suplimentare instrumentelor (de exemplu, framework-uri, ORM).
Alternative (în funcție de context):
- Anotări (
@interface). - Clase abstracte.
Interfețele marker sunt preferate atunci când trebuie să marchezi un atribut al clasei fără a adăuga comportament.