Diferença entre polimorfismo e herança em POO

Índice:

Diferença entre polimorfismo e herança em POO
Diferença entre polimorfismo e herança em POO

Vídeo: Diferença entre polimorfismo e herança em POO

Vídeo: Diferença entre polimorfismo e herança em POO
Vídeo: Programação Orientada a Objetos - Herança e Polimorfismo – Parte 1 2024, Junho
Anonim

Key Difference – Polimorfismo vs Herança em OOP

Programação Orientada a Objetos (POO) é 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 em OOP é um modelo para criar um objeto. Uma classe tem propriedades e métodos. Um objeto é uma instância de uma classe. A POO contém quatro pilares como Herança, Polimorfismo, Abstração e Encapsulamento. Este artigo discute a diferença entre polimorfismo e herança em POO. A principal diferença entre Polimorfismo e Herança na OOP é 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.

O que é Polimorfismo em POO?

Polimorfismo é para 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.

Diferença entre polimorfismo e herança em OOP
Diferença entre polimorfismo e herança em OOP

Figura 01: Sobrecarga

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

Substituição

Outro tipo de polimorfismo é a substituição. Consulte o programa abaixo escrito em Java.

Diferença entre Polimorfismo e Herança em OOP_Figura 02
Diferença entre Polimorfismo e Herança em OOP_Figura 02

Figura 02: Substituição

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. É uma herança. O conceito de herança é descrito mais adiante.

Classe B também tem 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 por herança, isso é conhecido como overriding. Também é conhecido como ligação tardia, ligação dinâmica, polimorfismo de tempo de execução. A sobrecarga e a substituição são chamadas de polimorfismo. É um conceito importante em Programação Orientada a Objetos.

O que é herança em POO?

Consulte o programa abaixo escrito em Java.

Diferença chave entre polimorfismo e herança em OOP
Diferença chave entre polimorfismo e herança em OOP

Figura 03: Exemplo de Herança

De acordo com o programa acima, a classe A tem o método sum() e a classe B tem 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 que não exista o método sum() na classe B; ela é herdada da classe A. A herança é útil para reutilização de código. A classe mais antiga é chamada de classe base, superclasse ou classe pai. A classe derivada é chamada de subclasse ou classe filha.

Tipos de Herança

Existem vários tipos de herança. Eles são Herança de Nível Único, Herança Multinível, Herança Múltipla, Herança Hierárquica e Herança Híbrida.

Herança Simples

Na Herança Simples, existe uma superclasse 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. Existe apenas um nível; portanto, é chamado de 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 existem 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 superclasses e uma subclasse. Se houver três superclasses chamadas A, B, C e D é a subclasse, então 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 nessas linguagens.

Herança Hierárquica

Se existem 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 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ças multiníveis e múltiplas. Se A, B, C e D são classes e B está herdando de A e D está herdando de B e C, então é uma herança híbrida.

Quais são as semelhanças entre polimorfismo e herança em POO?

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

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

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
Polymorphism é usado para objetos chamarem qual forma de métodos em tempo de compilação e tempo de execução. Herança é usada para reutilização de código.
Implementação
O polimorfismo é implementado em métodos. A herança é implementada nas classes.
Categorias
O polimorfismo pode ser dividido em sobrecarga e sobreposição. A herança pode ser dividida em herança de nível único, multinível, hierárquica, híbrida e múltipla.

Resumo – Polimorfismo vs Herança em POO

Polimorfismo e Herança são conceitos importantes em Programação Orientada a Objetos. A diferença entre Polimorfismo e Herança na OOP é que Polimorfismo é uma interface comum para vários formulários e Herança é criar uma nova classe usando propriedades e métodos de uma classe existente. Ambos os conceitos são amplamente utilizados em Desenvolvimento de Software.

Baixe o PDF Polimorfismo vs Herança em OOP

Você pode baixar a versão em PDF deste artigo e usá-lo 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

Recomendado: