Junior — Middle
Kell-e biztosítani az interfész módszereinek implementációját az alap osztályában?
sobes.tech MI
Válasz az MI-től
Androidban (és általában Java/Kotlin-ben) az interfész csak egy szerződést határoz meg — egy módszerekből álló halmazt, amelyeket a osztálynak meg kell valósítania. Az interfészt megvalósító osztályokban ezeket a módszereket meg kell valósítani.
Azonban, ha van egy alap osztályod, amely megvalósítja az interfészt, ebben az alap osztályban alapértelmezett implementációt adhatsz az interfész módszereire. Ez akkor hasznos, ha több származtatott osztály ugyanazt a logikát fogja használni, így elkerülve a kódduplikációt.
Például Java-ban így teheted:
public interface MyInterface {
void doSomething();
}
public abstract class BaseClass implements MyInterface {
@Override
public void doSomething() {
System.out.println("Alapértelmezett implementáció");
}
}
public class ChildClass extends BaseClass {
// Felülírhatod a doSomething-t vagy használhatod az alapértelmezettet
}
Így az interfész módszereinek implementációját az alap osztályban megadni hasznos és logikus lehet az architektúra és a kód újrahasznosítása szempontjából.