Junior — Middle
Obyektga yo'naltirilgan dasturlashda statik metodlar, voris klasslarda qayta yozilgan metodlardan qanday farq qiladi?
sobes.tech AI
AIdan javob
Java'da statik metodlar, o'ziga xos sinfga tegishli bo'lib, obyektlarga emas. Ular sinf nomi orqali chaqiriladi va voris sinflarda qayta yozib bo'lmaydi, chunki ular polimorfizmda ishtirok etmaydi.
Boshqacha qilib aytganda, qayta yozilishi mumkin bo'lgan (statik bo'lmagan) metodlar obyektlarga tegishli bo'lib, dinamik polimorfizmni qo'llab-quvvatlaydi. Asosiy sinfga referens orqali chaqirilganda, haqiqiy amalga oshirish ob'ektning turiga qarab aniqlanadi.
Misol:
class Parent {
static void staticMethod() {
System.out.println("Parent statik metodi");
}
void instanceMethod() {
System.out.println("Parent instansiya metodi");
}
}
class Child extends Parent {
static void staticMethod() {
System.out.println("Child statik metodi");
}
@Override
void instanceMethod() {
System.out.println("Child instansiya metodi");
}
}
public class Test {
public static void main(String[] args) {
Parent p = new Child();
p.staticMethod(); // Chiqish: Parent statik metodi
p.instanceMethod(); // Chiqish: Child instansiya metodi
}
}
Bu yerda, statik metod referens turiga (Parent) ko'ra chaqiriladi, va no-statik metod ob'ekt turiga (Child) ko'ra chaqiriladi.