Sobes.tech
Junior

Miért nem határoznak meg módszereket néhány interfészben?

sobes.tech MI

Válasz az MI-től

Az ilyen típusú interfészeket marker interfészeknek (jelölő interfészeknek) nevezik. Nem tartalmaznak metódusokat, és osztályokat jelölnek meg, jelezve a fordítónak vagy a JVM-nek bizonyos tulajdonságokat vagy szempontokat.

Példák:

  • java.io.Serializable: Megjelöli az osztályt, mint sorosítható.
  • java.lang.Cloneable: Jelez, hogy az objektum klónozható.
  • java.util.RandomAccess: Optimalizálja a véletlenszerű hozzáférést a listaelemekhez.

Előnyök:

  • Szemiantika: Egyértelműen jelzik a fejlesztő szándékát az osztállyal kapcsolatban.
  • Polimorfizmus: Lehetővé teszik polimorfikus hívások használatát, egy marker interfészt megvalósító osztálycsoporttal dolgozva.
  • Megjegyzés: Használhatók további információk nyújtására eszközök (például keretrendszerek, ORM) számára.

Alternatívák (kontektsztól függően):

  • Annotációk (@interface).
  • Absztrakt osztályok.

A marker interfészek előnyösebbek, amikor egy osztály attribútumát szeretnénk megjelölni anélkül, hogy viselkedést adnánk hozzá.