Cómo usar la herencia en C#

Como Usar La Herencia En C



Al escribir código en un lenguaje de programación orientado a objetos, es posible que nos encontremos con situaciones en las que necesitemos reutilizar código existente en una nueva clase o agregar funcionalidad adicional a una clase existente. En tales casos, la herencia viene muy bien. La herencia en la programación orientada a objetos permite que las clases hereden las propiedades y el comportamiento de otra clase. Este artículo cubre el uso de la herencia en C# y sus diferentes tipos.

Tabla de contenido

¿Qué es la herencia en C#?

¿Cómo funciona la herencia en C#?







Tipos de herencia en C#



Conclusión



¿Qué es la herencia en C#?

En C# usando herencia, una clase puede tomar o heredar las propiedades y métodos de otra clase. En otras palabras, permite la creación de una nueva clase a partir de una clase existente, lo que se conoce como clase base o superclase. Una clase formada después de tomar las propiedades de una clase base se llama una clase derivada o subclase.





Esta clase derivada en C# no solo toma propiedades de la clase base, sino que también puede agregar sus propias características únicas.

¿Cómo funciona la herencia en C#?

En C#, la herencia se logra mediante el uso de los dos puntos. (:) símbolo. El nombre de la clase base se define después de los dos puntos y lo especifica la clase derivada.



La siguiente es la sintaxis para crear una clase derivada que toma propiedades de la clase base:

clase clase derivada : BaseClass

{

  // miembros de clase derivados

}

Aquí en este código, Clase derivada es el nombre de la clase derivada, y BaseClass es el nombre de la clase base. El : El símbolo indica que DerivedClass hereda de BaseClass. Los miembros de DerivedClass pueden acceder a los miembros de BaseClass, siempre que no sean privados.

Tipos de herencia en C#

C# admite cuatro tipos de herencia: herencia única, multinivel, jerárquica y múltiple. Veamos cada tipo.

Herencia Única

La herencia única es el tipo de herencia más común, donde una clase derivada toma o hereda propiedades de una sola clase base.

Por ejemplo, el código dado explica la jerarquía de clases y demuestra los conceptos de herencia.

usando el sistema ;

usando el sistema ;
coche de clase
{
público vacío Comenzar ( )
    {
Consola. Línea de escritura ( 'Coche arrancado' ) ;
    }
}
clase tesla : Auto
{
público vacío Acelerar ( )
    {
Consola. Línea de escritura ( 'Tesla acelerando' ) ;
    }
}
programa de clase
{
    estático vacío Principal ( cadena [ ] argumentos )
    {
Tesla miTesla = nuevo tesla ( ) ;
miTesla. Comenzar ( ) ; // Salida: Coche arrancado
miTesla. Acelerar ( ) ; // Salida: Tesla acelerando
    }
}

En el código anterior, el clase de coche es la clase base y tiene un método llamado Comenzar() , que simplemente imprime el mensaje coche arrancado a la consola

El clase tesla se deriva de la clase Car y toma todas las propiedades de la clase Car. La clase Tesla agrega un método llamado Acelerar() , que imprime el mensaje Tesla acelerando a la consola

El Principal() define una instancia de la clase Tesla llamada miTesla y llama a sus métodos Start() y Accelerate().

Herencia multinivel

La herencia multinivel es donde una clase derivada hereda de otra clase derivada, que a su vez hereda de una clase base.

Por ejemplo, el siguiente código de C# demuestra la herencia y la anulación de métodos en una jerarquía de clases.

usando el sistema ;
clase de animales
{
público vacío Comer ( )
    {
Consola. Línea de escritura ( 'comer animales' ) ;
    }
}
clase mamífero : Animal
{
público vacío Correr ( )
    {
Consola. Línea de escritura ( 'Mamífero corriendo' ) ;
    }
}
perro de clase : Mamífero
{
público vacío Ladrar ( )
    {
Consola. Línea de escritura ( 'Perro ladrando' ) ;
    }
}
programa de clase
{
    estático vacío Principal ( cadena [ ] argumentos )
    {
perro mi perro = Perro nuevo ( ) ;
Mi perro. Comer ( ) ; // Salida: Comer animales
Mi perro. Correr ( ) ; // Salida: Mamífero corriendo
Mi perro. Ladrar ( ) ; // Salida: perro ladrando
    }
}

Aquí Perro es una clase derivada que hereda de Mamífero , que a su vez hereda de Animal . La clase Dog tiene acceso a todas las propiedades, métodos y comportamientos de Mammal y Animal, y también puede definir su propio método único. Ladrar() .

El clase de animales es la clase base y tiene un método llamado Comer() , que simplemente imprime el mensaje Animal comiendo en la consola.

El Clase de mamíferos se deriva de la clase Animal y agrega un método llamado Correr() , que imprime el mensaje Mammal running en la consola.

El clase de perro se deriva de la clase Mammal y agrega un método llamado Ladrar() , que imprime el mensaje Perro ladrando en la consola.

El método Main() crea una instancia de la clase Dog llamada Mi perro y llama a sus métodos Eat(), Run() y Bark().

Tenga en cuenta que los métodos Eat() y Run() no están definidos en la clase Dog, sino que se heredan de sus clases principales. Animal y Mamífero , respectivamente. El Ladrar() El método solo se define en la clase Perro.

  Texto
Descripción generada automáticamente

Herencia jerárquica

En la herencia jerárquica, diferentes números de clases derivadas se heredan de una sola clase base. Por ejemplo:

usando el sistema ;
forma de clase
{
público vacío Dibujar ( )
    {
Consola. Línea de escritura ( 'Dibujo de forma' ) ;
    }
}
círculo de clase : Forma
{
público vacío Llenar ( )
    {
Consola. Línea de escritura ( 'Círculo de llenado' ) ;
    }
}
plaza de clase : Forma
{
público vacío Color ( )
    {
Consola. Línea de escritura ( 'Cuadrado para colorear' ) ;
    }
}
programa de clase
{
    estático vacío Principal ( cadena [ ] argumentos )
    {
Círculo miCírculo = nuevo círculo ( ) ;
miCírculo. Dibujar ( ) ; // Salida: forma de dibujo
miCírculo. Llenar ( ) ; // Salida: Círculo de relleno

cuadrado mi cuadrado = nuevo cuadrado ( ) ;
miCuadrado. Dibujar ( ) ; // Salida: forma de dibujo
miCuadrado. Color ( ) ; // Salida: Cuadrado para colorear
    }
}

En el código anterior, ambos Círculo y Cuadrado son clases derivadas que heredan de Forma . Tienen acceso al método Draw() definido en Shape y también pueden definir sus propios métodos únicos Fill() y Color().

Aquí creamos un objeto de la clase Circle llamado miCirculo y un objeto de la Cuadrado clase nombrada micuadrado . Entonces llamamos a la Dibujar() método, que se hereda de la clase Shape, en ambos objetos.

A continuación, llamamos a la Llenar() en myCircle, que es específico de la clase Circle, y el Color() método en mySquare, que es específico de la clase cuadrada.

La salida se imprimirá en la consola de la siguiente manera:

  Texto
Descripción generada automáticamente con confianza media

Herencia múltiple

La herencia múltiple es donde una clase derivada hereda de múltiples clases base. Sin embargo, C# no admite la herencia múltiple. Para lograr una funcionalidad similar, C# usa interfaces .

Conclusión

La herencia en C# permite que las clases hereden el comportamiento y la funcionalidad de las clases base. Usando herencia, podemos reutilizar código y crear un flujo jerárquico dentro del programa. Al comprender los diferentes tipos de herencia, se puede escribir un código más eficiente y organizado que sea más fácil de mantener y ampliar.