Sobes.tech
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.