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.