Cómo usar el polimorfismo en C#

Cómo usar el polimorfismo en C#
El polimorfismo se usa ampliamente en el concepto de programación orientado a objetos. El polimorfismo permite que una clase derivada tenga múltiples formas que puedan tratarse como la clase base. C# admite el polimorfismo a través de diversos mecanismos, como la sobrecarga de métodos y la prima. Este artículo cubre el uso del polimorfismo en C#.

Tabla de contenido

  • ¿Qué es el polimorfismo en C#?
  • Tipos de polimorfismo en C#
  • Sobrecarga de métodos
  • Método primordial
  • Ejemplos de polimorfismo en C#
  • Cómo usar el polimorfismo en C#
  • Conclusión

¿Qué es el polimorfismo en C#?

El polimorfismo proviene de dos palabras griegas: escuela politécnica y transformar. La palabra escuela politécnica aquí representa muchos, y transformar significa Formularios. Es la capacidad del objeto en la programación adquirir diferentes formas.

El polimorfismo permite el tratamiento de objetos de clases distintas como provienen de la misma clase. Esto se puede hacer utilizando el concepto de herencia, ya que permite que las clases derivadas tomen o hereden las propiedades de la clase base.

Tipos de polimorfismo en C#

El polimorfismo se puede clasificar en dos tipos en función de cuándo ocurre:

  • Compilar tiempo [sobrecarga del método]
  • Tiempo de ejecución [anulación de método]

Sobrecarga de métodos

La sobrecarga de métodos puede definir múltiples métodos que tengan el mismo nombre pero que contienen diferentes parámetros. El compilador decide el método que se llamará en función de los argumentos dados al método. Usando la sobrecarga de métodos, podemos hacer tareas que son similares pero que tengan diferentes parámetros de entrada.

Método primordial

El método anular en C# es una técnica que permite que una clase derivada proporcione su propia implementación de un método que ya proporciona su clase base. La primordial del método es como la función virtual de C++. Cuando un método en una clase derivada tiene el mismo nombre, el mismo tipo de retorno y el mismo parámetros que un método en su clase base, se dice que el método en la clase derivada anula el método en la clase base.

En el polimorfismo, el método base anulado debe ser virtual, abstracto o anulación. Anular los métodos implementando miembros de clase base existentes de manera nueva. La anulación del método se logra utilizando las palabras clave virtuales y anular.

Ejemplos de polimorfismo en C#

A continuación se muestra un código de ejemplo que explica los métodos que anulan y sobrecargan en C#:

Ejemplo 1: sobrecarga de métodos

Aquí, en el ejemplo a continuación, hemos definido múltiples métodos en una sola clase. Todos estos métodos comparten el mismo nombre pero contienen diferentes parámetros.

usando el sistema;
programa de clase

void calculatesum (int num1, int num2)

Consola.WriteLine ($ "La suma de num1 y num2 es num1 + num2");

nulo calculatesum (doble num1, doble num2)

Consola.WriteLine ($ "La suma de num1 y num2 es num1 + num2");

static void main (string [] args)

Programa programa = nuevo programa ();
int intnum1 = 1;
int intnum2 = 2;
doble doublenum1 = 12.5;
doble doublenum2 = 7.5;
programa.Calculatesum (intnum1, intnum2);
programa.Calculatesum (Doublenum1, Doublenum2);

El código anterior da dos números a sumar, y demuestra sobrecarga de métodos Cª#. El Calculatesum El método se sobrecarga para aceptar dos parámetros enteros y dos parámetros dobles, respectivamente.

El método principal crea una instancia de la clase de programa y llama al método de calculación dos veces, una vez con dos argumentos enteros y una vez con dos argumentos dobles.

Cuando se ejecuta el programa, imprime la suma de los dos números pasados ​​al Calculatesum Método utilizando la interpolación de cadena para crear el mensaje de salida. La siguiente salida se puede ver en la consola:

Ejemplo 2: Método Anulando

Este ejemplo demuestra el concepto de anulación de métodos, donde una clase derivada puede proporcionar su propia implementación de un método heredado de su clase base.

usando el sistema;
forma de clase pública

Public Virtual Void Draw ()

Consola.Escritura ("dibujar una forma");


Rectángulo de clase pública: forma

anulación pública nula dibujo ()

Consola.WriteLine ("dibujar un rectángulo");


programa de clase pública

Public static void main (String [] args)

Forma forma = nueva forma ();
forma.Dibujar();
Rectángulo rectangle = new Rectangle ();
rectángulo.Dibujar();

Aquí hay una clase base que se llama Clase de forma. La clase de forma contiene un método virtual llamado Dibujar. Aquí, una palabra clave virtual es una indicación de que una clase derivada puede anular el método definido.

La clase del rectángulo anula el Dibujar método y se deriva de la clase de forma. La clase rectángulo tiene su propio conjunto de propiedades para la implementación. En este caso, el método de dibujo de la clase de rectángulo se imprime Dibujar un rectángulo en lugar de Dibujar una forma.

Luego, en Principal(), Se crea una instancia de la clase de forma y se llama su método de dibujo. Entonces se crea una instancia de la clase rectángulo y se llama su método de dibujo.

Debido a que la clase de rectángulo anula el método de dibujo de la clase de forma, cuando llamamos el método de dibujo en el objeto rectángulo, se llama la implementación de la clase rectángulo, y se llama Dibujar un rectángulo se imprime en la consola. Cuando se ejecuta el programa, saldrá:

Cómo usar el polimorfismo en C#

Después de conocer el concepto de polimorfismo en C#, ahora cubriremos los pasos para usarlo en la programación de C#.

Paso 1: Defina la clase base

El primer paso es definir la clase base que contiene los métodos o propiedades que serán compartidas por todas las clases derivadas. La clase base se define usando el clase palabra clave:

animal de clase pública

Public Virtual Void Makeound ()

Consola.WriteLine ("El animal hace un sonido");

El código anterior contiene una clase base Animal que tiene un método virtual Hacer sonido. La palabra clave virtual muestra que la clase derivada anulará el método definido.

Paso 2: Defina las clases derivadas

El siguiente paso es definir las clases derivadas que provienen de la clase base. En C#, podemos definir una clase derivada utilizando el ":" operador.

Perro de clase pública: animal

anulación pública vacío Makeound ()

Consola.WriteLine ("El perro ladra");


Cat de clase pública: animal

anulación pública vacío Makeound ()

Consola.WriteLine ("The Cat Meows");

El ejemplo anterior contiene dos clases de accionamiento Perro y Gato, y ambas clases toman propiedades de la clase base que se llama animal. Ambas clases anulan el Hacer sonido Método con su implementación.

Paso 3: Use el polimorfismo

El paso final es usar el polimorfismo en el código. Ahora definiremos instancias de las clases derivadas y llamaremos a sus métodos utilizando la referencia de la clase base.

Animal myanimal = nuevo animal ();
Animal mydog = new Dog ();
Animal mycat = new Cat ();
mi animal.Hacer sonido();
Mi perro.Hacer sonido();
mi gato.Hacer sonido();

Aquí creamos instancias de las clases de animales, perros y gatos. Después de eso, el Hacer sonido Se llama a un método en cada instancia. Desde el Hacer sonido El método es virtual, la implementación real que se llama depende del tipo real de la instancia. Esto significa que cuando llamamos mydog.Makeound () o Mycat.Makeound (), el Hacer sonido El método se llamará en la clase de perros o gatos, respectivamente.

Código de ejemplo

El siguiente es el código combinado de los pasos explicados anteriormente:

usando el sistema;
animal de clase pública

Public Virtual Void Makeound ()

Consola.WriteLine ("El animal hace un sonido");


Perro de clase pública: animal

anulación pública vacío Makeound ()

Consola.WriteLine ("El perro ladra");


Cat de clase pública: animal

anulación pública vacío Makeound ()

Consola.WriteLine ("The Cat Meows");


programa de clase pública

Public static void main ()

Animal myanimal = nuevo animal ();
Animal mydog = new Dog ();
Animal mycat = new Cat ();
mi animal.Hacer sonido();
Mi perro.Hacer sonido();
mi gato.Hacer sonido();

Después de ejecutar el código anterior, la siguiente salida se puede ver en la consola:

Conclusión

Se puede escribir el uso del polimorfismo en C# un código que administra múltiples tipos de objetos. En C#, podemos usar el polimorfismo definiendo una clase base, creando clases derivadas que heredan de la clase base y utilizando la referencia de clase base para llamar a los métodos de las clases derivadas. Siguiendo los pasos descritos en el artículo anterior, cualquiera puede usar el concepto de polimorfismo en C#.