Olá Icaro, tudo certo?
Gostaria muito de te responder de cabeça, mas posso não ficar muito claro. então vamos recorrer à documentação.
Assim como a classe abstrata, a classe estática não pode ser instanciada. Mas ao contrário da classe abstrata, você consegue acessar os métodos estáticos dessa classe. Assim como funciona o Console.WriteLine();
. Seria como o uso da classe Math.Round()
, você usa o método e não mantém valores (estado) para esses métodos.
Os membros estáticos da classe mantém seu valor em memória, por isso foi possível contar a quantidade de contas que foram instanciadas nos cursos anteriores (acho que no terceiro curso), mas a partir do momento que a instância é destruída, esse valor é perdido.
Quanto a sua última pergunta, essa na verdade é uma utilização para classes estáticas. Mas não é a única maneira de usar. As vezes você pode precisar de um método, mas este método não faz sentido fazer parte de uma classe de modelo.
Bom, mas como disse acima, segue a documentação para mais informações, vai que me enrolei na explicação.
Espero ter ajudado!