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
Personaque tenga las propiedadesNombreyApellido.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
Estudiantea partir de unaPersona.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 objetoPersonay lo llenaremos con datos como se muestra a continuación.Person person = new Person("Muhammad Zeeshan", "Khan"); -
Luego, cree dos objetos
Estudiantellamadoss1ys2y pase el objetopersonaycódigocomo parámetros.Student s1 = new Student(person, "3229"); Student s2 = new Student(person, "3227"); -
Por último, imprimiremos los objetos
Estudiantecon propiedadesPersona.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
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