Engenharias e TI

Minutos de Desenvolvimento de Sistemas: Herança e Polimorfismo na Programação Orientada a Objetos.

Introdução

Retomando a nossa série especial de artigos falando sobre Desenvolvimento de Sistemas, uma área bem “faca na caveira” de Tecnologia da Informação (TI), vamos abordar hoje herança e polimorfismo na programação orientada a objetos (POO).

Se você nunca viu o tema, terá oportunidade de aprender e entender os conceitos de uma maneira bem didática. Por outro lado, se você já é veterano da área de TI, poderá ficar conosco para fazer aquela revisão rápida e caprichada. Afinal, recordar é viver. Veja o que vamos abordar:

  • Programação Orientada a Objetos
  • Herança
  • Polimorfismo
  • Mapa Mental

Não deixe de ler o artigo, mesmo se não tiver certeza a respeito da cobrança do tópico no seu edital. Programação orientada a objetos é assunto certo em qualquer prova de Desenvolvimento de Sistemas. As bancas não terão pena de você, acredite.  

Recomendamos que você tenha noções básicas de programação para entender os conceitos apresentados. Não precisa aprofundar muito: apenas o básico para não se perder em alguns momentos da leitura.

Além de escrever para facilitar os seus estudos, vamos também usar o nosso poder de síntese para condensar tudo de forma bem objetiva. Ou seja, não tem desculpa para não ler.

Em outras palavras, embora o artigo seja curto, garantimos que você vai gastar apenas alguns minutos preciosos em sua leitura. Então, está preparado? Sem mais delongas, vamos começar.

Tempo de leitura aproximada: 5 a 10 minutos

Programação Orientada a Objetos

Programação orientada a objetos é um paradigma de programação que trabalha com o conceito de objetos. Antes de mais nada, você precisará saber a diferença entre classe e objeto para entendê-lo.

Classe: estrutura que define um conjunto de elementos que possuem as mesmas propriedades e comportamentos. As propriedades denominam-se atributos, enquanto os comportamentos denominam-se métodos.

Objeto: ocorrência de uma classe, ou seja, um elemento da vida real. No jargão computacional, essa ocorrência é chamada de instância. Cada um dos objetos (ou instâncias) é único.

Para facilitar a sua vida, vamos dar um exemplo bem clássico que os alunos que estudam POO adoram (e os professores também!). Pense em um carro. Um carro tem cor, ano, potência etc. Além disso, o carro permite acelerar, frear, estacionar etc.

Veja que carro é uma classe. Os atributos são as propriedades que falamos (cor, ano, potência etc.). Por outro lado, os métodos seriam os comportamentos do carro (acelerar, frear, estacionar etc.).

E o que seria um objeto? Pense em um Hyundai HB20, cor cinza, ano 2018, potência 1.0. Esse HB20 é uma ocorrência de um carro. Ou seja, é uma instância.  Se você está com dificuldades, pense que classe é algo mais geral, enquanto objeto é algo particular da classe. Perceba também que nem sempre o objeto é concreto.

ClasseObjeto
InsetoJoaninha
TimeFlamengo
CursoEstratégia Concursos
Tabela 1 – Exemplo de Classes e Objetos.

Os 4 pilares da POO são abstração, encapsulamento, herança e polimorfismo. No artigo de hoje, falaremos sobre herança e polimorfismo. Em outra publicação, falamos sobre abstração e encapsulamento. Fique conosco e não saia daí.

Herança

Este é o pilar mais clássico de todos. A herança ocorre quando uma classe herda atributos e métodos de uma ou mais classes. Assim, ela pode se dividir em 2 tipos:

Herança simples: classe herda atributos e métodos de apenas uma classe.

Herança múltipla: classe herda atributos e métodos de duas ou mais classes.

Você Sabia? Nem todas as linguagens que trabalham com POO suportam a herança múltipla. Um exemplo frequente em provas é a linguagem Java, que apenas lida com herança simples.

A classe que herda é chamada de derivada. Por outro lado, as classes que dão origem são chamadas de bases. Veja como eles seriam apresentados em um Diagrama de Classes.

Figura 1 – Exemplo de Herança na Programação Orientada a Objetos (Fonte: Universidade Federal de Campina Grande (UFCG). Disponível em: http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/heranca.htm. Acesso em: 19 jul. 2023).

Momento Curiosidade: Apesar do nome, a classe base situa-se acima das classes derivadas. No exemplo acima, Carta é a classe base, enquanto CartaPoquer e CartaTarot são as classes derivadas.

Polimorfismo

O polimorfismo consiste em um mesmo método apresentar comportamentos diferentes, dependendo da classe em que seja chamado. Ele pode apresentar duas classificações:

Polimorfismo estático: ocorre em momento de compilação. O mesmo método é implementado várias vezes na mesma classe, com parâmetros diferentes. A escolha do método a ser chamado vai variar de acordo com o parâmetro passado.

Polimorfismo dinâmico: ocorre em momento de execução. O mesmo método é implementado várias vezes nas subclasses derivadas, com os mesmos parâmetros. A escolha do método depende do objeto que o chama (e, consequentemente, da classe que o implementa).

Você Sabia? O polimorfismo estático também pode ser chamado de sobrecarga, enquanto o polimorfismo dinâmico também pode ser chamado de sobreposição.

Veja o exemplo abaixo. Repare que o método falar() aparece diversas vezes, sempre sem parâmetros, com retorno vazio. Porém, cada animal fala de um jeito diferente (ora, uma vaca não é um papagaio). No contexto apresentado, o método falar é um exemplo de polimorfismo dinâmico.

Figura 2 – Exemplo de Polimorfismo na Programação Orientada a Objetos (Fonte: Limontec.com. Disponível em: https://www.limontec.com/2019/04/aula-4-4-poo-java-ltcode.html. Acesso em: 21 jul. 2023).

Vamos imaginar agora que um animal falasse de um jeito diferente (por exemplo, um papagaio que falasse português e inglês). Seria necessário implementar o método falar mais de uma vez na classe, possivelmente com parâmetros diferentes. Esse seria um caso de polimorfismo estático.

Mapa Mental

O nosso artigo está quase acabando, mas não podíamos deixar você sem o tradicional mapa mental com os conceitos de herança e polimorfismo. Esquematizamos tudo para você não perder nenhum detalhe do conteúdo.

Figura 3 – Mapa Mental de Programação Orientada a Objetos.

Esperamos que este mapa mental faça a diferença nos seus estudos. Se você gostou do conteúdo, salve-o nos seus arquivos pessoais. Alternativamente, você também poderá armazenar este artigo para ler e reler quantas vezes quiser.  

Conclusão

Hoje falamos sobre herança e polimorfismo na programação orientada a objetos, um dos temas mais cobrados de Desenvolvimento de Sistemas. Conforme mencionamos no início, esse assunto despenca em provas. Ainda bem que você é um concurseiro ligado e ficou conosco até o final.

Recomendamos fortemente agora que você faça muitas questões para treinar. A teoria é importante, mas os exercícios são fundamentais e decisivos para a aprovação. O acesso ao Sistema de Questões do Estratégia Concursos é feito pelo link: https://concursos.estrategia.com/.

Além dos exercícios, não deixe de revisar o tópico periodicamente. As revisões são um artifício essencial para o conteúdo ficar gravado de vez na sua mente. E o nosso mapa mental pode ajudá-lo muito nesse desafio.

Por fim, se você quiser aprofundar o conteúdo ou tirar dúvidas específicas, busque o material do Estratégia Concursos. Nós oferecemos diversos cursos em pdf, videoaulas e áudios para você ouvir onde quiser. Saiba mais por meio do link http://www.estrategiaconcursos.com.br/cursos/.

Bons estudos e até a próxima!

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022) e TCE-RJ (2022). Atualmente exerce o cargo efetivo de Auditora de Controle Externo – Tecnologia da Informação no Tribunal de Contas do Estado do Rio de Janeiro (TCE-RJ), além de ser produtora de conteúdo dos Blogs do Estratégia Concursos, OAB e Carreiras Jurídicas.

Concursos Abertos

Quer Saber Tudo de Concursos Previstos?

Confira Nossos Artigos

Concursos 2023

Cristiane Selem Ferreira Neves

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo – Tecnologia da Informação e integra o corpo docente da Escola de Contas de Gestão do TCE-RJ, além de ser produtora de conteúdo dos Blogs do Estratégia Concursos, OAB e Carreiras Jurídicas.

Posts recentes

Sobrinhos-netos podem ser herdeiros?

Olá, tudo bem? Hoje responderemos ao questionamento acerca da possibilidade de os sobrinhos-netos serem herdeiros,…

12 horas atrás

Prepare-se para as provas do concurso INSS!

O Instituto Nacional do Seguro Social (INSS) finalmente está com seu edital na praça e,…

15 horas atrás

Concurso EBSERH: veja as vagas para área Administrativa

O concurso público EBSERH (Empresa Brasileira de Serviços Hospitalares) oferece o total de 545 vagas…

15 horas atrás

Concurso Bombeiro RJ: qual o salário do cargo de Oficial?

Provas previstas para 22 de fevereiro de 2025! O edital do concurso Bombeiro RJ (Corpo…

15 horas atrás

Cadernos de pré-edital para o concurso Sefaz RJ

Cadernos de questões pré-edital para o concurso Sefaz RJ: resolva questões sobre o conteúdo previsto…

16 horas atrás

Cadernos de Reta Final para o concurso TCE RR

Cadernos de Reta Final de questões para o concurso TCE RR: resolva questões sobre o…

16 horas atrás