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.