Sobes.tech
Junior — Middle

Ar galima paskelbti klasės statinį metodą kaip galutinį, kad būtų išvengta jo perrašymo?

sobes.tech AI

Atsakymas iš AI

Java kalboje statinės metodai negali būti perrašyti paveldėtose klasėse, nes jie priklauso pačiai klasei, o ne egzemplioriui. Todėl deklaruoti statinį metodą kaip final prasmės neturi ir sintaksiškai tai nėra leidžiama.

Final raktinis žodis paprastai naudojamas instancijos metodams, kad būtų užkirstas kelias jų perrašymui pogrupiuose. Statinių metodų perrašyti negalima, tačiau galima paslėpti tą patį pavadinimą turintį metodą pogrupyje (tai vadinama method hiding).

Pavyzdys:

class Parent {
    static void staticMethod() {
        System.out.println("Tėvo statinis metodas");
    }
}

class Child extends Parent {
    static void staticMethod() {
        System.out.println("Vaiko statinis metodas");
    }
}

Čia Child paslepia Parent metodą, tačiau tai nėra perrašymas. Static metodams negalima deklaruoti final.