Diferència entre polimorfisme i herència en POO

Taula de continguts:

Diferència entre polimorfisme i herència en POO
Diferència entre polimorfisme i herència en POO

Vídeo: Diferència entre polimorfisme i herència en POO

Vídeo: Diferència entre polimorfisme i herència en POO
Vídeo: Programación Orientada a Objetos (POO): Abstracción, Encapsulamiento, Herencia, Polimorfismo 2024, De novembre
Anonim

Diferència clau: polimorfisme vs herència en POO

La programació orientada a objectes (OOP) s'utilitza habitualment per desenvolupar programari. Molts llenguatges de programació admeten la programació orientada a objectes. La programació orientada a objectes és una metodologia per dissenyar un programa utilitzant classes i objectes. Una classe en POO és un pla per crear un objecte. Una classe té propietats i mètodes. Un objecte és una instància d'una classe. La POO conté quatre pilars com ara l'herència, el polimorfisme, l'abstracció i l'encapsulació. Aquest article analitza la diferència entre polimorfisme i herència en POO. La diferència clau entre el polimorfisme i l'herència en POO és que el polimorfisme és la capacitat d'un objecte de comportar-se de múltiples maneres i l'herència és crear una nova classe utilitzant propietats i mètodes d'una classe existent.

Què és el polimorfisme en POO?

El polimorfisme és indicar múltiples formes. Un objecte pot tenir múltiples comportaments. El polimorfisme es pot dividir en dues categories. S'estan sobrecarregant i anul·lant.

Sobrecàrrega

Consulteu el programa següent escrit en Java.

Diferència entre polimorfisme i herència en POO
Diferència entre polimorfisme i herència en POO

Figura 01: sobrecàrrega

Segons el programa anterior, es crea un objecte de tipus A. Quan es crida a obj.sum(); donarà la sortida relacionada amb el mètode sum(). En cridar l'obj.sum(2, 3); donarà la sortida relacionada amb sum(int a, int b). Es pot observar que un mateix objecte té diferents comportaments segons la situació. Quan hi ha diversos mètodes amb el mateix nom, però amb diferents paràmetres, es coneix com a sobrecàrrega. També es coneix com a enllaç estàtic o polimorfisme en temps de compilació.

Anul·lació

Un altre tipus de polimorfisme està anul·lant. Consulteu el programa següent escrit en Java.

Diferència entre polimorfisme i herència a OOP_Figura 02
Diferència entre polimorfisme i herència a OOP_Figura 02

Figura 02: anul·lació de

Segons el programa anterior, hi ha un mètode display() a la classe A. La classe B s'estén des de la classe A. Per tant, tots els mètodes de la classe A són accessibles per la classe B. És l'herència. El concepte d'herència es descriu més endavant.

La classe B també té el mateix mètode display(). Quan es crea un objecte de tipus A i es crida al mètode de visualització, la sortida donarà B. El mètode de visualització de classe A se substitueix pel mètode de visualització de classe B. Per tant, la sortida és B.

Quan hi ha mètodes amb el mateix nom i els mateixos paràmetres però en dues classes diferents, i estan enllaçats amb l'herència, es coneix com a anul·lació. També es coneix com a vinculació tardana, vinculació dinàmica, polimorfisme en temps d'execució. La sobrecàrrega i l'anul·lació s'anomenen polimorfisme. És un concepte important en la programació orientada a objectes.

Què és l'herència en POO?

Consulteu el programa següent escrit en Java.

Diferència clau entre polimorfisme i herència en POO
Diferència clau entre polimorfisme i herència en POO

Figura 03: exemple d'herència

Segons el programa anterior, la classe A té el mètode sum() i la classe B té el mètode sub().

El mètode sum() de la classe A es pot utilitzar a la classe B mitjançant la paraula clau extend. La reutilització de les propietats i mètodes d'una classe existent per crear una nova classe es coneix com a herència. Fins i tot no hi ha un mètode sum() a la classe B; s'hereta de la classe A. L'herència és útil per a la reutilització del codi. La classe més antiga s'anomena classe base, superclasse o classe pare. La classe derivada s'anomena subclasse o classe secundària.

Tipus d'herència

Hi ha diversos tipus d'herència. Són l'herència d'un sol nivell, l'herència de diversos nivells, l'herència múltiple, l'herència jeràrquica i l'herència híbrida.

Herència única

A l'herència única, hi ha una superclasse i una subclasse. Si la classe A és la superclasse i la classe B és la subclasse, totes les propietats i mètodes de la classe A són accessibles per la classe B. Només hi ha un nivell; per tant, s'anomena herència d'un sol nivell.

Herència de diversos nivells

A l'herència multinivell hi ha tres nivells de classes. La classe intermèdia hereta de la superclasse. La subclasse hereta de la classe intermèdia. Si hi ha tres classes com A, B i C i A és la superclasse i B és la classe intermèdia. Aleshores B hereta de A i C hereta de B, és una herència multinivell.

Herència múltiple

A l'herència múltiple, hi ha moltes superclasses i una subclasse. Si hi ha tres superclasses anomenades A, B, C i D és la subclasse, aleshores la classe D pot heretar d'A, B i C. L'herència múltiple és compatible amb el llenguatge de programació C++. No és compatible amb llenguatges de programació com Java o C. Les interfícies s'utilitzen per implementar l'herència múltiple en aquests idiomes.

Herència jeràrquica

Si hi ha classes anomenades A com a superclasses i B, C són subclasses, aquestes subclasses poden heretar propietats i mètodes de la classe A. Aquest tipus d'herència es coneix com a herència jeràrquica.

Herència híbrida

Hi ha un altre tipus d'herència especial que es coneix com a herència híbrida. És una combinació d'herències multinivell i múltiples. Si A, B, C i D són classes i B hereta d'A i D hereta tant de B com de C, llavors és una herència híbrida.

Quines similituds hi ha entre el polimorfisme i l'herència en POO?

Tots dos són conceptes de programació orientada a objectes

Quina és la diferència entre el polimorfisme i l'herència en POO?

Polimorfisme vs herència en POO

El polimorfisme és la capacitat d'un objecte de comportar-se de diverses maneres. L'herència és crear una classe nova utilitzant propietats i mètodes d'una classe existent.
Ús
El polimorfisme s'utilitza perquè els objectes cridin a quina forma de mètodes en temps de compilació i en temps d'execució. L'herència s'utilitza per a la reutilització del codi.
Implementació
El polimorfisme s'implementa en mètodes. L'herència s'implementa a les classes.
Categories
El polimorfisme es pot dividir en sobrecàrrega i anul·lació. L'herència es pot dividir en herència d'un sol nivell, multinivell, jeràrquica, híbrida i múltiple.

Resum: polimorfisme vs herència en PO

El polimorfisme i l'herència són conceptes principals de la programació orientada a objectes. La diferència entre el polimorfisme i l'herència en POO és que el polimorfisme és una interfície comuna a múltiples formes i l'herència és crear una nova classe utilitzant propietats i mètodes d'una classe existent. Tots dos conceptes s'utilitzen àmpliament en el desenvolupament de programari.

Descarregueu el PDF Polimorfisme vs Herència en OOP

Podeu baixar la versió PDF d'aquest article i utilitzar-la per a finalitats fora de línia segons la nota de citació. Si us plau, descarregueu la versió PDF aquí Diferència entre polimorfisme i herència en OOP

Recomanat: