Junior
Prečo v niektorých rozhraniach nie sú definované metódy?
sobes.tech AI
Odpoveď od AI
Takéto rozhrania sa nazývajú markerové rozhrania (marker interfaces). Neobsahujú metódy a slúžia na označenie tried, pričom informujú kompilátor alebo JVM o určitých vlastnostiach alebo semantike triedy.
Príklady:
java.io.Serializable: Označuje triedu ako serializovateľnú.java.lang.Cloneable: Ukazuje, že objekt môže byť klonovaný.java.util.RandomAccess: Optimalizuje náhodný prístup k prvkom zoznamu.
Výhody:
- Semantika: Jasne označujú zámer vývojára vo vzťahu k triede.
- Polymorfizmus: Umožňujú používanie polymorfných volaní, pracujúc s skupinou tried, ktoré implementujú rovnaké markerové rozhranie.
- Poznámka: Môžu byť použité na poskytovanie dodatočných informácií nástrojom (napríklad frameworkom, ORM).
Alternatívy (v závislosti od kontextu):
- Anotácie (
@interface). - Abstraktné triedy.
Markerové rozhrania sú preferované, keď je potrebné označiť atribút triedy bez pridania správania.