Qual a diferença entre classes abstratas e estáticas?
Qual a diferença entre classes abstratas e estáticas?
Oie Isabela, tudo bem contigo?
Elas são totalmente diferentes, a classe estática só pode ser criada ser for uma classe interna, ou seja uma classe aninhada, segue exemplo:
public class TesteClasseEstatica {
static class ClasseEstatica { // isso aqui é uma classe interna, e classes estáticas só podem ser internas
public String nome;
}
}
A vantagem de ser feito isso nessa situação é que se torna possível instanciar a classe estática sem ter que instanciar a classe externa, por exemplo:
public static void main(String[] args) {
ClasseStatic.ClasseEstatica teste = new ClasseStatic.ClasseEstatica();
teste.nome = "adsaa";
}
Entretanto raramente sentimos necessidade de se usar uma classe interna estática.
Agora a classe abstrata não é possível de ser instanciada e funciona em conjunto com a herança, podendo possuir métodos abstratos ou com implementação.
Alguns links que vão te ajudar a entender melhor sobre as classes estáticas:
Espero ter conseguido ajudar! Se tiver restado qualquer dúvida é só mandar mensagem :)
Bons estudos!