Extender una clase en C#

Muhammad Zeeshan 12 octubre 2023
Extender una clase en C#

Este tutorial le enseñará cómo extender una clase usando el lenguaje de programación C#.

Usar herencia para extender una clase en C#

Cuando se trabaja con Programación Orientada a Objetos (OOP), la herencia está asociada a un nivel jerárquico. Aunque es factible convertir una clase derivada a su clase base, no podemos hacer lo contrario.

Es imposible pasar de una clase base a una clase derivada. Echa un vistazo al siguiente ejemplo para entender mejor.

En el siguiente ejemplo, agregaremos propiedades al nuevo objeto de una en una y luego usaremos el nuevo objeto para extender una sola propiedad del anterior.

  • Para comenzar, importe las siguientes bibliotecas.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    
  • Cree una clase Persona que tenga las propiedades Nombre y Apellido.
    public class Person {
      public string Firstname { get; set; }
      public string Lastname { get; set; }
    
      public Person(string fname, string lname) {
        Firstname = fname;
        Lastname = lname;
      }
    }
    
  • La sobrecarga de constructores ahora se usará para construir un Estudiante a partir de una Persona.
    public class Student : Person {
      public Student(Person person, string code) : base(person.Firstname, person.Lastname) {
        this.code = code;
      }
      public Student(Person person) : base(person.Firstname, person.Lastname) {}
      public string code { get; set; }
    }
    
  • En el método Principal(), crearemos un objeto Persona y lo llenaremos con datos como se muestra a continuación.
    Person person = new Person("Muhammad Zeeshan", "Khan");
    
  • Luego, cree dos objetos Estudiante llamados s1 y s2 y pase el objeto persona y código como parámetros.
    Student s1 = new Student(person, "3229");
    Student s2 = new Student(person, "3227");
    
  • Por último, imprimiremos los objetos Estudiante con propiedades Persona.
    Console.WriteLine(s1.code);
    Console.WriteLine(s2.code);
    
  • Código fuente completo.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    
    public class Person {
      public string Firstname { get; set; }
      public string Lastname { get; set; }
    
      public Person(string fname, string lname) {
        Firstname = fname;
        Lastname = lname;
      }
    }
    
    public class Student : Person {
      public Student(Person person, string code) : base(person.Firstname, person.Lastname) {
        this.code = code;
      }
      public Student(Person person) : base(person.Firstname, person.Lastname) {}
      public string code { get; set; }
    }
    
    static class Program {
      static void Main(string[] args) {
        Person person = new Person("Muhammad Zeeshan", "Khan");
        Student s1 = new Student(person, "3229");
        Student s2 = new Student(person, "3227");
        Console.WriteLine(s1.code);
        Console.WriteLine(s2.code);
      }
    }
    

    Producción:

    3229
    3227
    
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Csharp Class