Sobes.tech
Junior — Middle

Объектке багытталган программалоодо статикалык методдор менен мураскор класстарда кайра аныкталган методдор кайсы жактан айырмаланат?

sobes.tech AI

AIден жооп

Javaда статикалык методдор, өзү класска таандык болуп, мисалдарга эмес. Алар класстын аты аркылуу чакырылат жана муундар класстарда кайра жазылбайт, анткени алар полиморфизмге катышпайт.

Анын ордуна, кайра жазылуучу (статикалык эмес) методдор объекттерге таандык жана динамикалык полиморфизмди колдойт. Башкы класска шилтемеден чакырылганда, чын реализациясы объекттин тибине жараша ишке ашырылат.

Мисал:

class Parent {
    static void staticMethod() {
        System.out.println("Parent статикалык методу");
    }
    void instanceMethod() {
        System.out.println("Parent инстанция методу");
    }
}

class Child extends Parent {
    static void staticMethod() {
        System.out.println("Child статикалык методу");
    }
    @Override
    void instanceMethod() {
        System.out.println("Child инстанция методу");
    }
}

public class Test {
    public static void main(String[] args) {
        Parent p = new Child();
        p.staticMethod();      // Чыгуу: Parent статикалык методу
        p.instanceMethod();    // Чыгуу: Child инстанция методу
    }
}

Бул жерде, статикалык метод шилтеменин тибине (Parent) жараша чакырылат, ал эми эмес-статикалык — объекттин тибине (Child).