Sobes.tech
Junior — Middle
113

Mi a szerepe az alapértelmezett módszerek alkalmazásában interfészekben és absztrakt osztályokban, és miben különböznek?

Válasz az MI-től

sobes.tech MI

Alapértelmezett módszerek (default methods) a Java interfészekben olyan módszerek, amelyek implementációval rendelkeznek, és lehetővé teszik új módszerek hozzáadását az interfészekhez anélkül, hogy megszakítanák a meglévő megvalósításokat. Ezek a Java 8-ban jelentek meg.

Alapértelmezett módszerek alkalmazása az interfészekben:

  • Lehetővé teszik az interfészek bővítését anélkül, hogy megszakítanák az őket megvalósító osztályok kódját.
  • Alapértelmezett implementációt nyújtanak, amely felülírható.

Absztrakt osztályok tartalmazhatnak absztrakt (megvalósítatlan) és megvalósított módszereket is. Ezek arra szolgálnak, hogy közös logikával rendelkező alap osztályt hozzanak létre.

Fő különbségek:

  • Egy interfész, amely rendelkezik alapértelmezett módszerekkel, nem tartalmazhat állapotot (mezőket), kivéve konstansokat.
  • Egy absztrakt osztály tartalmazhat mezőket és konstruktorokat.
  • Egy osztály több interfészt valósíthat meg, de csak egy absztrakt osztályt örökölhet.

Példa egy alapértelmezett módszerre egy interfészben:

public interface Logger {
    void log(String message);

    default void logError(String error) {
        log("HIBA: " + error);
    }
}

Itt a logError egy megvalósítással rendelkező, alapértelmezett módszer, amelyet a megvalósító osztályok használhatnak vagy felülírhatnak.