Sobes.tech
Junior — Middle

Este posibil să declarați o metodă statică a unei clase ca fiind finală pentru a preveni suprascrierea acesteia?

sobes.tech AI

Răspuns de la AI

În Java, metodele statice nu pot fi suprascrise în clasele derivate deoarece aparțin clasei în sine, nu instanței. Prin urmare, declararea unei metode statice ca final nu are sens și nu este permisă sintactic.

Cuvântul cheie final este de obicei folosit pentru metodele de instanță pentru a le împiedica să fie suprascrise în subclase. Pentru metodele statice, suprascrierea nu este posibilă, dar se poate ascunde o metodă cu același nume în subclasă (aceasta se numește method hiding).

Exemplu:

class Parent {
    static void staticMethod() {
        System.out.println("Metoda statică a părinților");
    }
}

class Child extends Parent {
    static void staticMethod() {
        System.out.println("Metoda statică a copilului");
    }
}

Aici, Child ascunde metoda Parent, dar nu o suprascrie. Nu se poate declara final pentru o metodă statică.