Métodos, sobrecarga y sobreescritura

Creación de métodos, sobrecarga y sobreescritura.

Son procedimientos o funciones definidos dentro de una CLASE. Los métodos pueden manejar los campos de la clase incluso si son privados.

La sobrecarga es la creación dentro de la clase, de un grupo de métodos que tienen el mismo nombre pero con un número de parámetros distinto y/o bien distintos tipos de datos.

Sabemos que las clases derivadas heredan las propiedades y métodos de su clase base. Se pueden usar sin ninguna modificación, pero sí el método no está adaptado a la nueva clase podemos sobrescribirlo. Para ello utilizamos la palabra reservada override. También es obligatorio que permitir la sobrescritura de mediante el de la palabra reservada virtual. Esto se utiliza para asegurar el polimorfismo entre las clases.

 

Ejemplo de método abstracto

Método parcial

Métodos de extensión

Los métodos de extensión permiten añadir funcionalidades a una clase ya definida sin tener que modificar el código de esta clase. Se deben respetar las siguientes reglas:

  • Pueden ser de tipo procedimientos o función. NUNCA propiedad.
  • El primer parámetro irá precedido de la palabra this. La palabra clave this hace referencia a la instancia actual de la clase ,pero también se utiliza como modificador del primer parámetro de un método de extensión.
  • El tipo del primer parámetro del método determina el tipo extendido por este método.
  • En el momento de la ejecución, éste primer parámetro representa la instancia de la clase sobre la cual se llama el método.
  • Se deben definir una clase static.
  • Ellos mismos deben ser static.

Ejemplo de extensión de la clase Persona con el método «presentacion», ya que es en este caso un procedimiento, el primer parámetro va precedido de «this», el tipo del primer parámetro en este caso es la propia clase «Persona» que determina el tipo extendido por esta nueva propiedad y representa la instancia de la clase sobre la cual se llama al método, está definido como «static»:

Los métodos de extensión también también se pueden definir para los tipos básicos del Framework, como por ejemplo la clase string. El siguiente código añade a la clase string un método que permite convertir el primer carácter de una cadena en mayúsculas.

Ejercicio: Crear una extensión de la clase string que ponga en mayúsculas un determinado número de caracteres.