domingo, 11 de agosto de 2013

Herencia, Sobrecarga y Sobrescritura C#

Herencia


La herencia es una de las herramienta mas usadas dentro de la programación  ya que esta permite que una clase herede las propiedades de la clase padre.

Para hacer uso de la herencia en C# es necesario usar los dos puntos (:), estos equivalen a el implements o el extends en java, como por ejemplo 

public class ColorCoOrds : CoOrds

Donde la clase ColorCoOrdshereda de la clase CoOrds.
Este mismo ejemplo en java seria
public class ColorCoOrds extends CoOrds

Sobrecarga

La sobrecarga en C#, cumple con la misma función que en Java, ya que esta permite sobrecargar o implementar un método, constructor o instancia con el mismo nombre, pero que reciba distintos argumentos.
Por ejemplo si se tiene el método suma:
                          private static int suma(int a, int b){
                                    return a+b;
                               }

                         private static int suma(int a, int b, int c){
                                    return a+b+c;
                               }

Como vemos, existe un método suma que retorna un entero, pero tiene dos formas de sobrecarga; una que recibe solo dos argumentos (a y b) y la segunda que recibe 3 argumentos (a,b y c).

Sobrescritura

La sobrescritura u Override, en C#, el override es necesario para ampliar o modificar la implementacion abstracta o virtual de un método  propiedad o evento heredado.

El método sobrecarga solo puede sobrescribir un método virtual, si esta explicito que este método puede hacer la sobrescritura.

Por ejemplo

// Define the base class
class Car
{
    public virtual void DescribeCar()
    {
        System.Console.WriteLine("Four wheels and an engine.");
    }
}

// Define the derived classes
class ConvertibleCar : Car
{
    public new virtual void DescribeCar()
    {
        base.DescribeCar();
        System.Console.WriteLine("A roof that opens up.");
    }
}

class Minivan : Car
{
    public override void DescribeCar()
    {
        base.DescribeCar();
        System.Console.WriteLine("Carries seven people.");
    }
}

En el código anterior, se declara un metodo override, que va a sobrescribir el método DescribeCar; cambiando el texto que mostrara por consola.



No hay comentarios:

Publicar un comentario