Junior — Middle
Obyekt yönümlü proqramlaşdırmada statik metodlar, törəmə siniflərdə yenidən təyin olunan metodlardan necə fərqlənir?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da statik metodlar, öz sinfinə aiddir, nümunələrə deyil. Onlar sinif adından çağrılır və törəmə siniflərdə yenidən təyin oluna bilməzlər, çünki onlar polimorfizmə daxil deyillər.
Əksinə, yenidən təyin oluna bilən (statik olmayan) metodlar obyektlərə aiddir və dinamik polimorfizmi dəstəkləyir. Əsas sinfə istinadla çağırıldıqda, faktiki tətbiqetmə obyektin tipi əsasında müəyyən edilir.
Nümunə:
class Parent {
static void staticMethod() {
System.out.println("Parent statik metodu");
}
void instanceMethod() {
System.out.println("Parent nümunə metodu");
}
}
class Child extends Parent {
static void staticMethod() {
System.out.println("Child statik metodu");
}
@Override
void instanceMethod() {
System.out.println("Child nümunə metodu");
}
}
public class Test {
public static void main(String[] args) {
Parent p = new Child();
p.staticMethod(); // Çıxış: Parent statik metodu
p.instanceMethod(); // Çıxış: Child nümunə metodu
}
}
Burada, statik metod referansın tipi (Parent) ilə çağrılır, və qeyri-statik metod obyektin tipi (Child) ilə çağrılır.