Sobes.tech
Junior — Middle

Lehet-e korlátozni egy alosztályt abban, hogy megváltoztassa a bázissal osztály metódusainak megvalósításait?

sobes.tech MI

Válasz az MI-től

Java-ban a final kulcsszóval korlátozhatjuk a metódusok felülírásának lehetőségét az alosztályokban. Ha egy metódus a bázis osztályban final-ként van deklarálva, az alosztály nem módosíthatja annak implementációját.

Példa:

class Base {
    public final void doSomething() {
        System.out.println("Végleges metódus implementációja");
    }
}

class Subclass extends Base {
    // Fordítási hiba: nem lehet felülírni a végleges metódust
    // public void doSomething() {
    //     System.out.println("Felülírás próbálkozása");
    // }
}

Így a final védi a metódust attól, hogy felülírják az örökölt osztályokban.