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.
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.
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.
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