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:
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 é 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.
Classe | Objeto |
---|---|
Inseto | Joaninha |
Time | Flamengo |
Curso | Estratégia Concursos |
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í.
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.
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.
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.
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.
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.
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.
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.
Olá, tudo bem? Hoje responderemos ao questionamento acerca da possibilidade de os sobrinhos-netos serem herdeiros,…
O Instituto Nacional do Seguro Social (INSS) finalmente está com seu edital na praça e,…
O concurso público EBSERH (Empresa Brasileira de Serviços Hospitalares) oferece o total de 545 vagas…
Provas previstas para 22 de fevereiro de 2025! O edital do concurso Bombeiro RJ (Corpo…
Cadernos de questões pré-edital para o concurso Sefaz RJ: resolva questões sobre o conteúdo previsto…
Cadernos de Reta Final de questões para o concurso TCE RR: resolva questões sobre o…