Sobes.tech
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.