Sobes.tech
Junior — Middle

Lehet-e egy osztály statikus metódusát véglegesnek nyilvánítani, hogy megakadályozzuk a felülírást?

sobes.tech MI

Válasz az MI-től

Java-ban a statikus módszerek nem írhatók felül az örökölt osztályokban, mert azok az osztályhoz tartoznak, nem a példányhoz. Ezért értelmetlen és szintaktikusan nem megengedett, hogy egy statikus módszert finalnak nyilvánítsunk.

A final kulcsszót általában az példány módszerekhez használják, hogy megakadályozzák azok felülírását az alosztályokban. Statikus módszerek esetén a felülírás nem lehetséges, de el lehet rejteni egy ugyanazzal a névvel rendelkező módszert az alosztályban (ez a method hiding).

Példa:

class Parent {
    static void staticMethod() {
        System.out.println("Parent statikus módszere");
    }
}

class Child extends Parent {
    static void staticMethod() {
        System.out.println("Child statikus módszere");
    }
}

Itt a Child elrejti a Parent módszerét, de nem írja felül. A static módszerre nem lehet finalt mondani.