Métodos static e variaveis static

Porque um método estatico nao pode acessar uma variavel não estatica??? Oque isso implica??
Logo, porque um método não estatico pode acessar uma variavel estatica?

Res: O método nao estatico de uma classe sempre poderá chamar um método estatico dela ou acessar uma variavel estatica da classe.

(tenho a resposta mas nao consigo aceitar isso… nao compreendo qual é o problema? oque impede uma static nao ser acessada ou nao poder acessar e blah blah blah… quais sao as regras??)

Na verdade, você pode acessar variáveis não-estáticas a partir de métodos estáticos, desde que você tenha um objeto da classe:

class Book{
   private String author;

   public static Book getInstance(String author){
      Book b = new Book();
      b.author = author;
      return b;
   }
}

O código acima funciona perfeitamente.

Simples. Métodos estáticos não podem chamar variáveis ou métodos não-estáticos porque esses dependem de uma instância da classe em questão. Um método estático não pode ter em seu corpo qualquer referência a algo que não seja estático, pois caso contrário, isso implicaria em dependência de instância da classe. Porém o contrário é permitido sim, um método não estático pode chamar um método estático e uma variável não-estática pode referenciar uma variável estática. Isso porque uma instância de uma classe pode chamar coisas não ligadas à instâncias, ou seja, métodos e variáveis estáticas.
Ficou claro agora?

imagina um código com com um set dinâmico e o get estático por exemplo:

Algo a = new Algo(); Algo b = new Algo(); a.setValor(5); b.setValor(10); Algo.getValor(); // estático
vê se agora faz mais sentido os métodos estáticos não acessarem atributos e métodos não-estáticos ‘-’

Pelo simples fato de que o método estático não saberia qual instância da Classe acionar quando fosse solicitado.

De forma contrária, métodos não-estáticos podem acessar variáveis estáticas pois existem somente UMA, não tem como confundir.