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 propiedadesNombre
yApellido
.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 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 objetoPersona
y lo llenaremos con datos como se muestra a continuación.Person person = new Person("Muhammad Zeeshan", "Khan");
-
Luego, cree dos objetos
Estudiante
llamadoss1
ys2
y pase el objetopersona
ycódigo
como parámetros.Student s1 = new Student(person, "3229"); Student s2 = new Student(person, "3227");
-
Por último, imprimiremos los objetos
Estudiante
con 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