Verhalten der endgültigen statischen Methode
Ich habe mit Modifikatoren mit statischer Methode herumgespielt und bin auf ein seltsames Verhalten gestoßen.
Wie wir wissen, können statische Methoden nicht überschrieben werden, da sie eher einer Klasse als einer Instanz zugeordnet sind.
Wenn ich also das folgende Snippet habe, wird es problemlos kompiliert
//Snippet 1 - Compiles fine
public class A {
static void ts() {
}
}
class B extends A {
static void ts() {
}
}
Wenn ich jedoch den final-Modifikator für die statische Methode in Klasse A einbinde, schlägt die Kompilierung fehlts () in B kann ts () in A nicht überschreiben; überschriebene Methode ist statisch final.
Warum geschieht dies, wenn die statische Methode überhaupt nicht überschrieben werden kann?