Está en la página 1de 4

Reusabilidad:

Es la adecuacin de un producto software para poder ser reusado en otras


aplicaciones para las que no fue diseado.
Sobrecarga de mtodos (Overloading)
Cuando declaramos una variable o un mtodo con un nombre en
especifico, no podemos declarar otra variable o mtodo que se llame igual,
sin embargo esta regla no aplica cuando usamos la Sobrecarga de
mtodos, ya que esta permite usar el mismo nombre del mtodo pero solo
si se tiene diferente firma, cuando hablamos de la firma de un mtodo, nos
referimos a sus parmetros.
En resumen la sobrecarga permite declarar mtodos que se llamen igual
pero que reciban parmetros diferentes (no pueden haber 2 mtodos con el
mismo nombre y los mismos parmetros), por esta razn lo que define a
que mtodo se ingresa, son los argumentos que se envan como
parmetros.
La sobrecarga no es un principio de la programacin orientada a objetos,
sino que ms bien se trata de un recurso sintctico del lenguaje.
Como ejemplo podemos recuperar la clase Entero presentada anteriormente en el
apartado de paso de objetos como parmetros y completarla un poco ms.
class Entero
{
int valor; public: Entero();
Entero(int _valor);
Entero& suma(Entero& op2);
Entero& suma(int op2);
int suma(Entero& op2, int op3);
~Entero();
}
int main()

{
int x = 10;
Entero ent,ent2(5);
Entero ent3 = ent.suma(ent2);
Entero ent4 = ent.suma(6);
int x = ent.suma(ent4,x);
}
En este ejemplo, aparece la funcin miembro suma sobrecargada. Se aportan
diferentes versiones de esta funcin variando el nmero y tipo de los parmetros.
El compilador puede distinguir en cada llamada a la funcin suma a qu cuerpo de
funcin invocar segn el tipo de los parmetros. Realmente, ya hemos utilizado la
sobrecarga de funciones a lo largo de este captulo para la definicin de distintos
constructores para una misma clase.
Sobre escritura de mtodos (Overriding)
La Sobre escritura es la forma por la cual una clase que hereda puede redefinir los mtodos de su clase Padre, de esta manera puede crear nuevos
mtodos con el mismo nombre de su super Clase. Es decir, si tengo una
clase padre con el mtodo ingresar() yo puedo crear en la clase hija un
mtodo que tambin se llame ingresar() pero implementndolo segn lo
que necesite a esto se le llama sobre escritura.
Un ejemplo donde se sobreescribe el mtodo tocar()
1
2
3
4
5
6
7
8
9
10
11
12

Public class Instrumento{


public String tipo;
public abstract void tocar()
{
System.out.println("Tocar un Instrumento");
}
}
class Guitarra extends Instrumento {

13
1
2
3
4
5
6

@Override
public void tocar() {
System.out.println("Tocar La Guitarra");
}
}
Cuando vimos la herencia, se coment el concepto de redefinicin. Una
clase derivada poda proporcionar una nueva definicin para una funcin ya
definida en la clase base. En el caso de funciones virtuales, se habla de
sobre escritura en lugar de redefinicin. Una clase derivada puede
sobrescribir una funcin virtual de la clase base.

Bibliografa

Lgica y programacin orientada a los objetos: un inicio al desarrollo de


software

ITM
Fray Len Osorio Rivera
2008

Booch, G, Rumbaugh, J., y Jacobson, I.: The Unified Modeling Language

User Guide (1 ed.). Addison-Wesley, 1998.

Bruegge, B. y Dutoit, Allen,A.H.: Object-Oriented Software Engineering

(1ed). Prentice-Hall, 2000.

Eckel, B.: Thinking in C++, Volume 1: Introduction to Standard C++ (2

ed). Prentice Hall, 2000.

Eckel, B. Thinking in C++, Volume 2: Practical Programming (2 ed).

Prentice Hall , 2003.

Joyanes Aguilar, L.: Fundamentos de programacin. Algoritmos, estructuras

de datos y objetos. McGrawHill, 2003 (3 Edicin).

Meyer, B.: Construccin de Software Orientado a Objetos. Prentice Hall,

2000.

Pressman, R.S., adapted by Ince D.: Software Engineering. A Practitioners

Approach. European Adpatation (5 ed). McGraw-Hill, 2000.

Savitch W.: Resolucin de problemas con C++ (3 ed). Prentice Hall,

2000.

Sommerville, I.: Software Engineering (6 ed). Pearson Education Limited,

2001.

Stroutrup, B.: El Lenguaje de Programacin C++. Addison Wesley


Publishing

Company, 1998

También podría gustarte