Zachowanie ostatecznej metody statycznej

Bawiłem się modyfikatorami metodą statyczną i natknąłem się na dziwne zachowanie.

Jak wiemy, metod statycznych nie można przesłonić, ponieważ są one powiązane z klasą, a nie z instancją.

Więc jeśli mam poniżej fragment kodu, kompiluje się dobrze

//Snippet 1 - Compiles fine
public class A {
    static void ts() {
    }
}

class B extends A {
    static void ts() {
    }
}

Ale jeśli dołączę modyfikator końcowy do metody statycznej w klasie A, kompilacja nie powiedzie sięts () w B nie może przesłonić ts () w A; nadpisana metoda to statyczny finał.

Dlaczego tak się dzieje, gdy w ogóle nie można zastąpić metody statycznej?

questionAnswers(7)

yourAnswerToTheQuestion