Diferencia entre herencia y polimorfismo.

Herencia : 
La herencia es aquella en la que se crea una nueva clase que hereda las propiedades de la clase ya existente. Admite el concepto de reutilización de código y reduce la longitud del código en la programación orientada a objetos.
Los tipos de herencia son: 
 

  1. herencia única
  2. Herencia multinivel
  3. Herencia múltiple
  4. herencia híbrida
  5. herencia jerárquica

Ejemplo de Herencia: 
 

C++

#include "iostream"
using namespace std;
 
class A {
    int a, b;
 
public:
    void add(int x, int y)
    {
        a = x;
        b = y;
        cout << (a + b) << endl;
    }
};
 
class B : public A {
public:
    void print(int x, int y)
    {
        add(x, y);
    }
};
 
int main()
{
    B b1;
    b1.print(5, 6);
}

Java

class A {
    int a, b;
    public void add(int x, int y)
    {
        a = x;
        b = y;
        System.out.println("addition of a + b is:" + (a + b));
    }
}
class B extends A {
    public void sum(int x, int y)
    {
        add(x, y);
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        B b1 = new B();
        b1.sum(5, 6);
    }
}

Producción: 
 

addition of a+b is:11 

Aquí, la clase B es la clase derivada que hereda la propiedad ( método de adición ) de la clase base A.
Polimorfismo : 
el polimorfismo es aquel en el que podemos realizar una tarea de múltiples formas o formas. Se aplica a las funciones o métodos. El polimorfismo permite que el objeto decida qué forma de la función implementar en tiempo de compilación y en tiempo de ejecución.
Los tipos de polimorfismo son: 
 

  1. Polimorfismo en tiempo de compilación (sobrecarga de métodos)
  2. Polimorfismo en tiempo de ejecución (anulación de métodos)

Ejemplo de polimorfismo: 
 

C++

#include "iostream"
using namespace std;
 
class A {
    int a, b, c;
 
public:
    void add(int x, int y)
    {
        a = x;
        b = y;
        cout << "addition of a+b is:" << (a + b) << endl;
    }
 
    void add(int x, int y, int z)
    {
        a = x;
        b = y;
        c = z;
        cout << "addition of a+b+c is:" << (a + b + c) << endl;
    }
 
    virtual void print()
    {
        cout << "Class A's method is running" << endl;
    }
};
 
class B : public A {
public:
    void print()
    {
        cout << "Class B's method is running" << endl;
    }
};
 
int main()
{
    A a1;
 
    // method overloading (Compile-time polymorphism)
    a1.add(6, 5);
 
    // method overloading (Compile-time polymorphism)
    a1.add(1, 2, 3);
 
    B b1;
 
    // Method overriding (Run-time polymorphism)
    b1.print();
}

Java

class A {
    int a, b, c;
 
    public void add(int x, int y)
    {
        a = x;
        b = y;
        System.out.println("addition of a+b is:" + (a + b));
    }
 
    public void add(int x, int y, int z)
    {
        a = x;
        b = y;
        c = z;
        System.out.println("addition of a+b+c is:" + (a + b + c));
    }
 
    public void print()
    {
        System.out.println("Class A's method is running");
    }
};
 
class B extends A {
    public void print()
    {
        System.out.println("Class B's method is running");
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        A a1 = new A();
 
        // method overloading (Compile-time polymorphism)
        a1.add(6, 5);
 
        // method overloading (Compile-time polymorphism)
        a1.add(1, 2, 3);
 
        B b1 = new B();
 
        // Method overriding (Run-time polymorphism)
        b1.print();
    }
}

Producción: 
 

addition of a+b is:11
addition of a+b+c is:6
Class B's method is running 

Diferencia entre herencia y polimorfismo:
 

S.NO Herencia Polimorfismo
1. La herencia es aquella en la que se crea una nueva clase (clase derivada) que hereda las características de la clase ya existente (clase base). Mientras que el polimorfismo es aquello que se puede definir en múltiples formas.
2. Básicamente se aplica a las clases. Mientras que básicamente se aplica a funciones o métodos.
3. La herencia admite el concepto de reutilización y reduce la longitud del código en la programación orientada a objetos. El polimorfismo permite que el objeto decida qué forma de la función implementar en tiempo de compilación (sobrecarga), así como en tiempo de ejecución (anulación).
4. La herencia puede ser única, híbrida, múltiple, jerárquica y multinivel. Mientras que puede ser polimorfismo en tiempo de compilación (sobrecarga), así como polimorfismo en tiempo de ejecución (anulación).
5. Se utiliza en el diseño de patrones. Si bien también se utiliza en el diseño de patrones.
6.

Ejemplo :

La clase moto se puede heredar de la clase de vehículos de dos ruedas, que a su vez podría ser una subclase de vehículos.  

Ejemplo : 

La bicicleta de clase puede tener el nombre de método set_color(), que cambia el color de la bicicleta según el nombre del color que haya ingresado. 

Publicación traducida automáticamente

Artículo escrito por MKS075 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *