Junior — Middle
Vai ir iespējams paziņot klases statisko metodi kā galīgo, lai novērstu tā pārrakstīšanu?
sobes.tech AI
Atbilde no AI
Java valodā statiskās metodes nevar pārrakstīt mantošanas klasēs, jo tās pieder pašai klasei, nevis instancē. Tādēļ, deklarējot statisku metodi kā final, tas nav jēgas un sintaktiski nav atļauts.
Final atslēgvārds parasti tiek izmantots instancēm metodēm, lai aizliegtu to pārrakstīšanu apakšklasēs. Statiskās metodes pārrakstīt nav iespējams, bet var slēpt tādu pašu nosaukumu metodi apakšklasē (tas sauc par method hiding).
Piemērs:
class Parent {
static void staticMethod() {
System.out.println("Vecāka statiskā metode");
}
}
class Child extends Parent {
static void staticMethod() {
System.out.println("Bērna statiskā metode");
}
}
Šeit Child slēpj Parent metodi, bet tas nav pārrakstīšana. Static metodes nevar deklarēt kā final.