Junior — Middle
Je možné vyhlásiť statickú metódu triedy ako finálnu, aby sa zabránilo jej prepísaniu?
sobes.tech AI
Odpoveď od AI
V Jave, statické metódy nemôžu byť prepísané v podtriedach, pretože patria samotnej triede, nie inštancii. Preto deklarovanie statickej metódy ako final nemá zmysel a syntakticky to nie je povolené.
Kľúčové slovo final sa zvyčajne používa pre metódy inštancie, aby sa zabránilo ich prepísaniu v podtriedach. Pre statické metódy nie je možné ich prepísať, ale je možné skryť metódu s rovnakým názvom v podtriede (toto sa nazýva method hiding).
Príklad:
class Parent {
static void staticMethod() {
System.out.println("Statická metóda rodiča");
}
}
class Child extends Parent {
static void staticMethod() {
System.out.println("Statická metóda dieťaťa");
}
}
Tu Child skrýva metódu Parent, ale nejde o prepísanie. Pre static metódy nie je možné deklarovať final.