Sobes.tech
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.