O conceito de sombreamento

Dado o seguinte código:

public class A {
 static final long tooth = 1L;

 static long tooth(long tooth){
  System.out.println(++tooth);
  return ++tooth;
 }

 public static void main(String args[]){
  System.out.println(tooth);
  final long tooth = 2L;
  new A().tooth(tooth);
  System.out.println(tooth);
 }
}

Você pode me explicar o conceito de sombreamento? E outra coisa, o quetooth é realmente usado no código do método principal?

E eu sei que é um código muito feio, mas feio é a escolha padrão para escritores de livros da SCJP.

questionAnswers(2)

yourAnswerToTheQuestion