Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

¿Qué Es la Herencia en C#?

Herencia es una piedra angular del diseño orientado a objetos en C#. Permite que una clase hija reciba automáticamente los campos y métodos de una clase padre, mientras aún permite a la hija sobrescribir o extender ese comportamiento. Esto promueve reutilización de código, simplifica mantenimiento y establece una jerarquía clara.

Ejemplo de Herencia en C#

A continuación una demostración paso a paso que muestra cómo implementar herencia y usar miembros protected.

Paso 1 – Modificar la Clase Base

Abra Tutorial.cs y cambie la clase Tutorial para que sus campos clave sean protected:

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

Usar protected asegura que solo las clases derivadas puedan acceder a estos campos directamente.

Paso 2 – Crear una Clase Derivada

Añada el siguiente código a Tutorial.cs después de la definición de la clase base:

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

Explicación:

  1. Declarar Guru99Tutorial como hija de Tutorial usando la sintaxis de dos puntos (:).
  2. Añadir un método RenameTutorial que asigna un nuevo valor a TutorialName.
  3. Porque TutorialName es protected, Guru99Tutorial puede acceder a él aunque no se declare explícitamente allí.

Paso 3 – Usar la Clase Derivada en Program.cs

Reemplace el contenido de Program.cs con lo siguiente:

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

using System; namespace DemoApplication { public class Tutorial { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public string GetTutorial() { return TutorialName; } } public class Guru99Tutorial : Tutorial { public void RenameTutorial(string pNewName) { TutorialName = pNewName; } static void Main(string[] args) { Guru99Tutorial pTutor = new Guru99Tutorial(); pTutor.RenameTutorial(".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }

Explicación:

  1. El programa instancia Guru99Tutorial, no la base Tutorial.
  2. Llama a RenameTutorial para cambiar el título.
  3. Aunque GetTutorial está definido en la clase base, la instancia derivada puede invocarlo directamente.

Ejecutar este código imprime:

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

¿Qué Es el Polimorfismo en C#?

Polimorfismo permite que una única interfaz represente diferentes formas subyacentes. En C#, esto a menudo se manifiesta como sobrecarga o sobrescritura de métodos, permitiendo que el mismo nombre de método realice tareas variadas basadas en parámetros o contexto.

Ejemplo de Polimorfismo en C#

Demostraremos sobrecarga de métodos dentro de la misma clase.

Paso 1 – Actualizar la Clase Base

Modifique Tutorial.cs como se muestra:

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

Cambios clave:

  1. El método SetTutorial ahora tiene dos sobrecargas – una que acepta int y string, y otra que acepta solo string.
  2. Ambas sobrecargas asignan valores a los campos correspondientes.

Paso 2 – Probar en Program.cs

Reemplace Program.cs con el siguiente código:

using System; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public void SetTutorial(string pName) { TutorialName = pName; } public string GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor = new Tutorial(); pTutor.SetTutorial(1, "First Tutorial"); Console.WriteLine(pTutor.GetTutorial()); pTutor.SetTutorial("Second Tutorial"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }

Explicación:

  1. Primera llamada pasa tanto id como name a la sobrecarga de dos parámetros.
  2. Segunda llamada pasa solo name, invocando la sobrecarga de un parámetro.

La consola muestra:

Dominando Herencia y Polimorfismo en C#: Ejemplos de Código Prácticos

Para escenarios avanzados, puede añadir un método GetTutorialID para recuperar el ID por separado.

Resumen

Lenguaje C

  1. Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
  2. Clases y objetos en C#: Fundamentos para POO robusta
  3. Dominando clases y métodos abstractos en C#: Guía práctica
  4. Entendiendo clases y métodos parciales en C#
  5. Dominando clases y métodos sealed en C#: Cuándo usarlos, ejemplos claros y mejora de seguridad y rendimiento
  6. Funciones en C++ Explicadas con Ejemplos de Código Prácticos
  7. Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
  8. Bucles While vs. Do-While: Comparación clara con ejemplos prácticos
  9. Estructura de Programa C#: Componentes Principales y Ejemplo Hello World
  10. Herencia en C#: Construyendo código reutilizable y mantenible
  11. Entendiendo type() e isinstance() en Python: ejemplos prácticos