Respondi uma pergunta exatamente igual, bom vou colocar o mesmo exemplo:
basicamente um método comum da classe, depende da classe para funcionar, logo ele não pode ser estático.
Já um método estático, ele não depende exclusivamente da classe para funcionar, ex:
Class Metodos{
string name;
//um metodo comum
public function returnName(){
return this.name
}
//um metodo estático
public static function returnQualquerCoisa(){
return "Não dependo da classe"
}
}
//estanciando o objeto
metodo = new Metodos('joao')
//chamando um método comum
print metodo.returnName;
resultado: joao
//chamando um método estático
metodo2 = Metodos::returnQualquerCoisa()
print(metodo2)
resultado: não dependo da classe
Consegue ver a diferença? o primeiro método depende exclusivamente de um atributo da classe pai, enquanto o método estático não depende, inclusive posso chamar ele sem sequer estanciar a classe.