Middle
Оё мумкин аст, ки усулҳои статикӣ дар Java нависанд?
sobes.tech AI
Ҷавоб аз AI
Не, дар Java наметавонед, ки статик усулҳоро нависед. Статик усулҳо ба синф тааллуқ доранд, на ба намунаи муайяни объект. Вақте ки як усули статик бо имзоҳои якхела аз усули статик дар суперкласс мерос мегирад, ин навиштан нест; ин пинҳон кардан (method hiding) номида мешавад. Занг ба усули статик ҳамеша аз навъи истинод муайян карда мешавад, на аз навъи объект.
class Parent {
public static void staticMethod() {
System.out.println("Статик усул дар Parent");
}
}
class Child extends Parent {
// Ин навиштан нест, балки пинҳон кардан аст
public static void staticMethod() {
System.out.println("Статик усул дар Child");
}
}
public class Main {
public static void main(String[] args) {
Parent.staticMethod(); // Занг ба усули статик дар Parent
Child.staticMethod(); // Занг ба усули статик дар Child
Parent p = new Child();
// Занг ба усули статик дар Parent, зеро навъи истинод Parent аст
p.staticMethod();
}
}
Дар ин мисол, ҳарчанд тағйирёбандаи p ба объект Child ишора мекунад, занг ба p.staticMethod() усули статик дар класи Parent-ро даъват мекунад. Ин нишон медиҳад, ки усулҳои статик дар иҷроиш иштирок намекунанд, ки хусусияти навиштан аст.