Comportamento do método estático final

Eu tenho brincado com modificadores com método estático e me deparei com um comportamento estranho.

Como sabemos, os métodos estáticos não podem ser substituídos, pois estão associados à classe e não à instância.

Então, se eu tenho o trecho abaixo, ele compila bem

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

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

Mas se eu incluir o modificador final para o método estático na classe A, a compilação falharáts () em B não pode sobrescrever ts () em A; método substituído é final estático.

Por que isso acontece quando o método estático não pode ser substituído?

questionAnswers(7)

yourAnswerToTheQuestion