Eu entendi o conceito, mas eu fiquei com uma dúvida. Qual é a vantagem em se criar uma classe abstrata?
Eu entendi o conceito, mas eu fiquei com uma dúvida. Qual é a vantagem em se criar uma classe abstrata?
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:
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!