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á.