Em métodos estáticos, o binding é feito em compilação.Em atributos, não importa se é estático ou não, ele sempre pega da variável de referência. Como não é muito comum na prática, fui testar..
public class A {
static int _a = 1;
public static void main(String[] args) {
B b= new B();
System.out.println(b._a + " (instancia de B -> retorna 2)");
A a= new B(); // varável de referência é A
System.out.println(a._a + " (instancia de A -> retorna 1)");
}
}
class B extends A {
static int _a = 2;
}
Conclui-se então que o binding de variáveis , sendo variáveis estáticas ou não, sempre é em tempo de compilação ?