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.