Vous êtes sur la page 1sur 11

SOBRECARGA DE MTODOS

VEREAU AGUILERA, Luis Jos


BECERRA RAMOS, Jos
La sobrecarga de mtodos nos permite tener el mismo
nombre del mtodo en una clase, pero con diferentes
argumentos y opcionalmente diferente tipo de retorno.

Con sobrecarga, una llamada a mtodo puede llamar a
diferentes comportamientos en funcin del parmetro
transferido. Por ejemplo, en una clase Perro, el
mtodo oler() puede llamar a comportamientos
completamente distintos en funcin del parmetro. Si la
llamada es oler(gato), entonces el comportamiento
sera un ladrido y un aullido incesante, mientras que el
mtodo oler(comida) llamara a comportamientos de
salivacin, ingestin y splica.
SOBRECARGA DE METODOS
SOBRECARGA DE METODOS
Reglas:

El mtodo sobrecargado debe cambiar la lista de
argumentos.
El mtodo sobrecargado puede cambiar el tipo de
retorno
El mtodo sobrecargado puede cambiar el modificador
de acceso.
El mtodo sobrecargado puede declarar nuevas
excepciones.
SOBRECARGA DE MTODOS
Java nos permite tener mtodos con el mismo nombre y que se
diferencian por sus argumentos:
Al llamar a un mtodo, Java busca la versin
del mtodo que coincide con los argumentos
de la llamada
class S3 {

public static void main(String[] args) {

int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
S3 calcular = new S3();
calcular.sumar(a, b);
calcular.sumar(a, b, c);
calcular.multiplicar(a, b);
calcular.multiplicar(a, b, c);
}
class S3 {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
S3 calcular = new S3();
calcular.sumar(a, b);
calcular.sumar(a, b, c);
calcular.multiplicar(a, b);
calcular.multiplicar(a, b, c);
}
public void sumar(int num1, int num2) {
int resultado = num1 + num2;
System.out.println("La suma de los 2 primeros numeros es: " + resultado);
}
public void sumar(int num1, int num2, int num3) {
int resultado = num1 + num2 + num3;
System.out.println( "La suma de todos los numeros es: " + resultado);
}
public void multiplicar(int valor1, int valor2) {
int resultado = valor1 * valor2;
System.out.println("El producto de los 2 primero numeros es: " + resultado);
}
public static void multiplicar(int valor1, int valor2, int valor3) {
int resultado = valor1 * valor2*valor3;
System.out.println("El producto de todos los numeros es: " + resultado);
}
}
SOBRECARGA DE
OPERADORES
SOBRECARGA DE OPERADORES
Existen algunos operadores como el = que ya se
encuentran sobrecargados de manera nativa. En el
caso del = compara objetos en base a sus
referencias.

Antes de ver la sobrecarga de operadores se ver
la sobrecarga de funciones para entender el
concepto.
SOBRECARGA DE OPERADORES
La nica restriccin de la sobrecarga de
operadores es que no se puede cambiar la aridad
de los operadores; es decir, si el + es binario, se
sigue manejando de la misma forma.

Complex& Complex::operator[](unsigned
int i) { return data[i]; }
SOBRECARGA DE OPERADORES
class Vector {

public:
float x, y;
Vector operator+ (Vector v) {
Vector resultado;
resultado.x = x + v.x;
resultado.y = y + v.y;
return resultado;
}
};
SOBRECARGA DE OPERADORES EN JAVA
Java no soporta sobrecarga de operadores. Los
nicos casos de operadores sobrecargados con
una operacin especial (definido por el sistema no
por los programadores) son el operador = para
copia, para == igualdad de referencias y + para la
concatenacin de cadenas o elementos.
BIBLIOGRAFIA
http://jagonzalez.org/sobrecarga-de-metodos-
java/
http://eii.ucv.cl/pers/guidi/cursos/ti/Java-POO-3-
SobrecragaConstructoresYMetodos.pdf
http://pooitsavlerdo.blogspot.com/2012/05/27-
sobrecarga-de-operadores-concepto-y.html
http://dis.um.es/~bmoros/Tutorial/parte4/cap4-
2.html