1
resposta

Não entendi como funciona as Classes Abstratas.

Li uma dúvida semelhante aqui no fórum, porém continuo sem entender... Poderiam me dar uma explicação mais detalhada?

1 resposta

Oi, Lucas! Tudo bem?

No conceito de Programação Orientada a Objetos, uma classe abstrata é uma classe que não pode ser instanciada diretamente e que geralmente contém métodos que são declarados entretanto não são implementados.

Como somente as subclasses concretas podem ser instanciadas, pois elas contêm todas as informações necessárias para criar objetos com comportamentos completos, apenas é possível criar um objeto baseado em uma classe abstrata, a partir da criação de uma subclasse que herda dela e fornece a implementação dos métodos abstratos.

Esse comportamento ocorre pois o objetivo de uma classe abstrata é servir como um modelo comum que outras classes (subclasses) devem seguir.

Podemos tornar esse conceito mais compreensível através do seguinte exemplo:

Imaginando um sistema de animais em um zoológico virtual, onde queremos representar diferentes tipos de animais, como leões, tigres e elefantes, sabemos que todos esses animais têm algumas características em comum, como nome, idade e habitat. Além disso, todos eles podem emitir um som característico.

Dessa forma, para garantir que todas as subclasses de animais tenham implementações adequadas para essas características e comportamentos, usamos uma classe abstrata chamada Animal.

A classe abstrata Animal contém:

  1. Atributos:
  • nome: que representa o nome do animal.
  • idade: que representa a idade do animal.
  • habitat: que representa o habitat onde o animal vive.

2 .Métodos abstratos:

  • emitir_som(): um método abstrato que representa o som característico do animal.

Note que nenhum desses atributos ou método possui uma implementação, uma descrição específica do que cada um deles faz, apenas estão sendo descritos como características genéricas de Animal, ou seja, podemos observar que a classe abstrata Animal apenas fornece os atributos e métodos que devem ser implementados em alguma subclasse específica, como Leão, que herda os métodos e atributos de Animal, onde esses atributos e métodos serão sobrescritos e descreverão tais características de forma específica para cada tipo de animal.

Ao usar essa classe abstrata, garantimos que todas as subclasses, como Leao, Tigre e Elefante, devem implementar o método emitir_som(), por exemplo. Isso permite que possamos chamar esse método para qualquer instância dessas subclasses sem nos preocuparmos com a implementação específica, pois sabemos que cada animal terá uma forma de emitir som.

Espero ter ajudado na compreensão. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓