Middle
Java'da statik metodlarni qayta yozish mumkinmi?
sobes.tech AI
AIdan javob
Java'da statik metodlarni qayta yozib bo'lmaydi. Statik metodlar sinfga tegishli bo'lib, aniq bir ob'ekt nusxasiga emas. Agar meros olish jarayonida, superklassdagi statik metod bilan imzosi bir xil bo'lgan statik metod meros olinsa, bu qayta yozish emas; bu yashirish (method hiding) deb ataladi. Statik metod chaqiruvi har doim referens turiga qarab aniqlanadi, ob'ekt turiga emas.
class Parent {
public static void staticMethod() {
System.out.println("Parent'dagi statik metod");
}
}
class Child extends Parent {
// Bu qayta yozish emas, yashirish
public static void staticMethod() {
System.out.println("Child'dagi statik metod");
}
}
public class Main {
public static void main(String[] args) {
Parent.staticMethod(); // Parent'dagi statik metodni chaqiradi
Child.staticMethod(); // Child'dagi statik metodni chaqiradi
Parent p = new Child();
// Referens tur Parent bo'lgani uchun Parent'dagi statik metod chaqiriladi
p.staticMethod();
}
}
Ushbu misolda, p o'zgaruvchisi Child ob'ektiga murojaat qilsa ham, p.staticMethod() chaqiruvi Parent sinfining statik metodini chaqiradi. Bu statik metodlar, yozib olish bilan xarakterlangan bajarilish polimorfizmi (runtime polymorphism)da qatnashmasligini ko'rsatadi.