Middle
242
Vai Java var pārrakstīt statiskās metodes?
Atbilde no AI
sobes.tech AI
Nē, Java nav iespējams pārrakstīt statiskās metodes. Statiskās metodes pieder klasei, nevis konkrētam objekta eksemplāram. Kad manto statisku metodi ar tādu pašu parakstu kā superklases statiska metode, tas nav pārrakstīšana; tas tiek saukts par slēpšanu (method hiding). Statiskās metodes izsaukums vienmēr ir atkarīgs no atsauces tipa, nevis no objekta tipa.
class Parent {
public static void staticMethod() {
System.out.println("Parent statiskā metode");
}
}
class Child extends Parent {
// Tas nav pārrakstīšana, bet slēpšana
public static void staticMethod() {
System.out.println("Child statiskā metode");
}
}
public class Main {
public static void main(String[] args) {
Parent.staticMethod(); // Izsauc Parent statisko metodi
Child.staticMethod(); // Izsauc Child statisko metodi
Parent p = new Child();
// Izsauc Parent statisko metodi, jo atsauces tips ir Parent
p.staticMethod();
}
}
Šajā piemērā, lai gan mainīgais p norāda uz Child objektu, p.staticMethod() izsaukums izsauc Parent klases statisko metodi. Tas rāda, ka statiskās metodes nepiedalās izpildes laikā notiekošajā polimorfismā, kas raksturīgs pārrakstīšanai.