Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Utilidade da Classe abstrata

Eu entendi o conceito, mas eu fiquei com uma dúvida. Qual é a vantagem em se criar uma classe abstrata?

3 respostas
solução!

Olá, Guilherme.

Uma classe abstrata é uma classe que serve de modelo para outras classes e possui dados em comum com suas filhas. Ela sempre será uma superclasse genérica, e suas subclasses serão mais específicas. Além disso, ela não pode ser instanciada e pode conter ou não métodos abstratos, podendo ser implementados nas classes descendentes.

Posso citar algumas vantagens que consigo enxergar, porém deve existir outras.

1 - Serve de modelo e alguns casos até de regra para as outras classes(filhas); 2 - Você pode por exemplo criar um novo tipo de dados que herdará da sua classe abastrata sem quebrar o codigo;

Consegui te explicar?

Oie Guilherme, tudo bem contigo?

As vantagens são:

  • Diferente das interfaces, pode possuir métodos com implementação.
  • Por mais que as classes abstradas não possam ser instanciadas através do new, elas ainda podem ter construtor e esse construtor poderá ser usado pelas classes derivadas.
  • Uma classe derivada pode sobrescrever um método de sua superclasse e declará-lo abstract. Isso pode ser feito quando a classe derivada for abstract e quiser inválidar o método herdado.
  • As classes derivadas de uma classe abstrata são obrigados a fazer a implementação dos métodos abstratos.

Mas atualmente, por mais que existam casos onde herança e classe abstrata se encaixam melhor, é optado pelo uso de interfaces e composição pela maioria dos programadores, já que a herança quebra o encapsulamento se não for feita de maneira correta.

Um artigo que eu recomendo muito para todos aprendendo polimorfismo é esse aqui:

Vale muito a pena a leitura e vai te agregar muito!

Espero ter ajudado, se tiver qualquer outra dúvida estarei por aqui :)

Bons estudos!

Acabei não vendo que o Tiago já havia respondido, peço desculpas!