Un método o atributo es static cuando no necesitas de una instancia (new MiClase()) para madarlo llamar. El ejemplo claro es el método main, es estático porque no debes crear una instancia de la clase donde está para llamarse.
Llamada estática:
Como verás no tuve que hacer:
para hacer uso del método.
Ahora, si tienes un método que no necesita instancias para llamarse y le metes en su definición uno que sí la necesita obviamente hay un conflicto, y se resuelve asegurando que siempre haya instancia o que ninguno la necesite. Por eso te pide que en un contexto estático, todo sea estático.