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
}
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);
}
}
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.