viernes, 16 de agosto de 2013

Herencia,Sobrecarga y Sobresccritura en C#








  •  Herencia

Es la posibilidad de que una clase herede las propiedades y métodos de otra clase de forma que se puedan usar con la nueva clase de igual forma que si se hubiese escrito en ella directamente.
Gracias a la Herencia podemos mejorar y ampliar las capacidades de una clase sin tener que modificarla; tan solo tenemos que crear una nueva clase que la herede, añadirle Nuevos Métodos y Propiedades y sobrescribir aquellos que queremos mejorar.  Como por ejemplo:












 





 CLASE A: es la clase que va a ser Heredada
 CLASE B: es la clase que Hereda


Para crear en C# la implementación de herencia se debe implementar esta sintaxis.

[public] class  Nombre_Subclase :  Nombre_Superclase             
{
// Implementacion de los nuevos métodos y propiedades de la clase
}



  •  Sobrecarga De Operadores
La sobrecarga sirve para especificar operadores, es decir, es tener dos métodos distintos pero con el mismo nombre y con diferente tipo de parámetro o con diferente número de parámetros de entrada.

 La lista de operadores sobrecargarles es: +, -, !, ~, ++, --, /, %, &, |, ^, <<, >>, ==, !=, <, >, <=, >=.
Veamos un Ejemplo que encontré en   “geneura.ugr.e”.
------------------------------------------------------------------------------------------------------------------------------
// complex.cs

using System;

public struct Complex
{
   public int real;
   public int imaginary;

   public Complex(int real, int imaginary)
   {
      this.real = real;
      this.imaginary = imaginary;
   }

   // sobrecarga del operador de suma

   public static Complex operator +(Complex c1, Complex c2)
   {
      return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
   }

   // sobrecarga del método "ToString"

   public override string ToString()
   {
      return(String.Format("{0} + {1}i", real, imaginary));
   }

   public static void Main()
   {
      Complex num1 = new Complex(2,3);
      Complex num2 = new Complex(3,4);

      // suma de dos números complejos utilizando el
      // operador de suma que hemos sobrecargado

      Complex sum = num1 + num2;

      // impresión de tres números complejos

      Console.WriteLine("First complex number:  {0}",num1);
      Console.WriteLine("Second complex number: {0}",num2);
      Console.WriteLine("The sum of the two numbers: {0}",sum);
   }
}



  •  Sobrescritura De Métodos


Cuando una clase hereda a otra, pero puede que algunos de los métodos heredados no se ajuste a las características de la nueva clase, es decir, si sucede esta caso, la Subclase puede volver a redefinir  el método o métodos heredados para así adaptarlo a sus necesidades, esto se le llama Sobreescritura.

 Para que un método pueda ser Sobrescrito en una clase deberá estar definido como “Virtual “en su superclase.  Y por su parte, en la nueva implementación del método dentro de la Subclase deberá estar definida como override”. Veamos esta Ejemplo:

// clase base

Public class ClaseA  {
                                   
                               Public virtual void Metodo1 ()
                                {

                                 // implementation Del mètodo

                                }
                               
}


// clase Derivada

Public class claseB   :   clase A {

                                Public override void Metodo1()
                                {
                                // Nueva implementation del metodo
                                }

}



 


MUCHAS GRACIAS POR SU ATENCIÓN, ESPERO LES HAYA SERVIDO

DEJEN SUS COMENTARIOS.   

No hay comentarios:

Publicar un comentario