Middle
243
Java-da statik metodları yenidən yaza bilərikmi?
AI-dan cavab
sobes.tech Süni İntellekt
Xeyr, Java-da statik metodları üst-üstə sala bilməzsiniz. Statik metodlar sinifə aiddir, müəyyən bir obyekt nümunəsinə deyil. Əgər miras alınan statik metod eyni imzaya malikdirsə, bu, üst-üstə salma deyil; bu, gizləmə (method hiding) adlanır. Statik metod çağırışı həmişə referansın tipi ilə müəyyən edilir, obyektin tipi ilə deyil.
class Parent {
public static void staticMethod() {
System.out.println("Parent-də statik metod");
}
}
class Child extends Parent {
// Bu, üst-üstə salma deyil, gizləmədir
public static void staticMethod() {
System.out.println("Child-də statik metod");
}
}
public class Main {
public static void main(String[] args) {
Parent.staticMethod(); // Parent-in statik metodunu çağırır
Child.staticMethod(); // Child-in statik metodunu çağırır
Parent p = new Child();
// Referans tipi Parent olduğu üçün Parent-in statik metodunu çağırır
p.staticMethod();
}
}
Bu nümunədə, p dəyişəni Child obyektinə istinad etsə də, p.staticMethod() çağırışı Parent sinfinin statik metodunu çağırır. Bu, statik metodların, üst-üstə salma ilə xarakterizə olunan icra zamanı çox formallıqda iştirak etmədiyini göstərir.