Diferença chave - polimorfismo vs herança em OOP
A Programação Orientada a Objetos (OOP) é comumente usada para desenvolver software. Muitas linguagens de programação oferecem suporte à 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 projeto para criar um objeto. Uma classe possui 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 em OOP. A principal diferença entre Polimorfismo e Herança em 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.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é polimorfismo em OOP
3. O que é herança em OOP
4. Semelhanças entre polimorfismo e herança em OOP
5. Comparação lado a lado - Polimorfismo vs herança em OOP em forma tabular
6. Resumo
O que é polimorfismo em OOP?
Polimorfismo é para indicar formas múltiplas. Um objeto pode ter vários comportamentos. O polimorfismo pode ser dividido em duas categorias. Eles estão sobrecarregando e substituindo.
Sobrecarregando
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 (); 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 distintos 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.
Substituindo
Outro tipo de polimorfismo é predominante. Consulte o programa abaixo escrito em Java.
Figura 02: Substituição
De acordo com o programa acima, há um método display () na classe A. A classe B estende-se da classe A. Portanto, todos os métodos na classe A são acessíveis pela classe B. É herança. O conceito de herança é descrito posteriormente.
A 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. Portanto, 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 Late binding, Dynamic Binding, Runtime Polymorphism. Sobrecarga e substituição são chamadas de polimorfismo. É um conceito importante na 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; ele é 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 filha.
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 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. Há apenas um nível; portanto, é chamado de herança de nível único.
Herança multinível
Na herança de vários níveis, 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 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 é compatível com 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 houver classes chamadas A como superclasses e B, C forem 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
Existe outro tipo de herança especial, conhecido como Herança Híbrida. É uma combinação de heranças de vários níveis e de vários níveis. 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 o polimorfismo e a herança em OOP?
Ambos são conceitos de Programação Orientada a Objetos
Qual é a diferença entre polimorfismo e herança em OOP?
Artigo Diff meio antes da tabela
Polimorfismo vs herança em OOP |
|
Polimorfismo é a capacidade de um objeto de 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 para chamar qual forma de métodos em tempo de compilação e tempo de execução. | A herança é usada para reutilização do 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 anulaçã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 OOP
Polimorfismo e herança são os principais conceitos em Programação Orientada a Objetos. A diferença entre Polimorfismo e Herança em 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 no Desenvolvimento de Software.
Baixe o PDF Polimorfismo vs Herança em OOP
Você pode baixar a versão PDF deste artigo e usá-la para fins off-line de acordo com a nota de citação. Faça o download da versão em PDF aqui. Diferença entre polimorfismo e herança em OOP