Diferença entre polimorfismo e herança em POO

Diferença-chave - Polimorfismo vs herança no POO
 

A Programação Orientada a Objetos (OOP) é ​​comumente usada para desenvolver software. Muitas linguagens de programação suportam programação orientada a objetos. A programação orientada a objetos é uma metodologia para projetar um programa usando classes e objetos. Uma classe no OOP é um blueprint para criar um objeto. Uma classe tem propriedades e métodos. Um objeto é uma instância de uma classe. OOP contém quatro pilares, como Herança, Polimorfismo, Abstração e Encapsulamento. Este artigo discute a diferença entre polimorfismo e herança na POO. o diferença chave entre Polimorfismo e Herança na POO é que Polimorfismo é a capacidade de um objeto se comportar de várias maneiras e Herança é criar uma nova classe usando propriedades e métodos de uma classe existente.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que é polimorfismo no POO
3. O que é herança em OOP
4. Semelhanças entre polimorfismo e herança na OOP
5. Comparação Lado a Lado - Polimorfismo vs Herança em POO em Forma Tabular
6. Resumo

O que é polimorfismo no POO?

Polimorfismo é indicar múltiplas formas. Um objeto pode ter vários comportamentos. O polimorfismo pode ser dividido em duas categorias. Eles estão sobrecarregando e substituindo.

Sobrecarga

Consulte o programa abaixo escrito em Java.

Figura 01: Sobrecarga

De acordo com o programa acima, um objeto do tipo A é criado. Ao chamar obj.sum (); dará a saída relacionada ao método sum (). Ao chamar o obj.sum (2,3); dará a saída relacionada à soma (int a, int b). Pode-se observar que o mesmo objeto tem comportamentos diferentes, dependendo da situação. Quando existem vários métodos com o mesmo nome, mas com parâmetros diferentes, é conhecido como sobrecarregar. Também é conhecido como ligação estática ou polimorfismo em tempo de compilação.

Substituindo

Outro tipo de polimorfismo é substituindo. Consulte o programa abaixo escrito em Java.

Figura 02: Substituindo

De acordo com o programa acima, existe um método display () na classe A. A classe B se estende da classe A. Portanto, todos os métodos da classe A são acessíveis pela classe B. É herança. O conceito de herança é descrito mais adiante.

A classe B também possui o mesmo método display (). Ao criar um objeto do tipo A e chamar o método de exibição, a saída fornecerá B. O método de exibição da Classe A é substituído pelo método de exibição da classe B. Então, a saída é B.

Quando existem métodos com o mesmo nome e os mesmos parâmetros, mas em duas classes diferentes, e eles estão vinculados à herança, isso é conhecido como substituição. Também é conhecido como Ligação tardia, Ligação dinâmica, Polimorfismo de tempo de execução. Sobrecarga e substituição são chamadas de polimorfismo. É um conceito importante em Programação Orientada a Objetos.

O que é herança em OOP?

Consulte o programa abaixo escrito em Java.

Figura 03: Exemplo de herança

De acordo com o programa acima, a classe A possui o método sum () e a classe B possui o método sub ().

O método sum () da classe A pode ser usado na classe B usando a palavra-chave extend. Reutilizar as propriedades e métodos em uma classe existente para criar uma nova classe é conhecido como Herança. Mesmo não há método sum () na classe B; é herdado da classe A. A herança é útil para a reutilização do código. A classe mais antiga é chamada de classe base, superclasse ou classe pai. A classe derivada é chamada de subclasse ou classe infantil.

Tipos de herança

Existem vários tipos de herança. Eles são herança de nível único, herança de vários níveis, herança múltipla, herança hierárquica e herança híbrida.

Herança única

Na herança única, há uma super classe e uma subclasse. Se a classe A é a superclasse e a classe B é a subclasse, todas as propriedades e métodos da classe A são acessíveis pela classe B. Há apenas um nível; portanto, é chamado como herança de nível único.

Herança multinível

Na herança multinível, existem três níveis de classes. A classe intermediária herda da superclasse. A subclasse herda da classe intermediária. Se houver três classes como A, B e C e A é a superclasse e B é a classe intermediária. Então B herda de A e C herda de B, é uma herança multinível.

Herança múltipla

Na herança múltipla, existem muitas super classes e uma subclasse. Se houver três superclasses chamadas A, B, C e D é a subclasse, a classe D pode herdar de A, B e C. A herança múltipla é suportada na linguagem de programação C ++. Não é suportado em linguagens de programação como Java ou C #. As interfaces são usadas para implementar a herança múltipla nesses idiomas.

Herança Hierárquica

Se houver classes chamadas A como superclasses e B, C são subclasses, essas subclasses podem herdar propriedades e métodos da classe A. Esse tipo de tipo de herança é conhecido como Herança Hierárquica.

Herança Híbrida

Há outro tipo de herança especial que é conhecido como herança híbrida. É uma combinação de herança de vários níveis e múltiplas. Se A, B, C e D são classes e B é herdado de A e D é herdado de B e C, é uma herança híbrida.

Quais são as semelhanças entre polimorfismo e herança na OOP?

  • Ambos são conceitos de Programação Orientada a Objetos.

Qual é a diferença entre polimorfismo e herança em OOP?

Polimorfismo vs Herança em POO

Polimorfismo é a capacidade de um objeto se comportar de várias maneiras. Herança é criar uma nova classe usando propriedades e métodos de uma classe existente.
 Uso
Polimorfismo é usado para objetos chamarem qual forma de métodos em tempo de compilação e tempo de execução. A herança é usada para reutilização de código.
Implementação
O polimorfismo é implementado em métodos. A herança é implementada em classes.
 Categorias
O polimorfismo pode ser dividido em sobrecarga e substituição. A herança pode ser dividida em herança de nível único, multinível, hierárquica, híbrida e múltipla.

Sumário - Polimorfismo vs Herança em POO 

Polimorfismo e herança são os principais conceitos da programação orientada a objetos. A diferença entre Polimorfismo e Herança no OOP é que o Polimorfismo é uma interface comum para várias formas e a Herança é criar uma nova classe usando propriedades e métodos de uma classe existente. Ambos os conceitos são amplamente utilizados no desenvolvimento de software.

Faça o download do PDF Polimorfismo vs herança no OOP

Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre polimorfismo e herança em OOP

Referência:
  1. 8.3 O que é herança em Java | Palestra | Tutorial, Telusko Learning, 15 de maio de 2014. Disponível aqui  
  2. Tutorial sobre polimorfismo em Java, Telusko Learning, 15 de maio de 2014. Disponível aqui