Sobes.tech
Junior
146

Kodėl kai kuriose sąsajose metodai nėra apibrėžti?

Atsakymas iš AI

sobes.tech AI

Tokių interfeisų vadinama žymeklių (marker interfaces). Jie neapima metodų ir naudojami klasių žymėjimui, nurodant kompiliatoriui ar JVM tam tikras savybes ar semantiką.

Pavyzdžiai:

  • java.io.Serializable: Žymi klasę kaip serializuojamą.
  • java.lang.Cloneable: Nurodo, kad objektas gali būti klonuojamas.
  • java.util.RandomAccess: Optimizuoja atsitiktinį prieigą prie sąrašo elementų.

Privalumai:

  • Semantika: Aiškiai nurodo kūrėjo ketinimą dėl klasės.
  • Polimorfizmas: Leidžia naudoti polimorfinius iškvietimus, dirbant su klase, įgyvendinančia tą patį žymeklio interfeisą.
  • Žymėjimas: Gali būti naudojamas papildomos informacijos teikimui įrankiams (pvz., karkasams, ORM).

Alternatyvos (priklausomai nuo konteksto):

  • Anotacijos (@interface).
  • Abstraktūs klasės.

Žymeklio interfeisai yra pageidaujami, kai reikia pažymėti klasės atributą be elgesio pridėjimo.