HERENCIA
Sobrecarga
El concepto de sobrecarga va orientado a que un método
puede repetirse con el mismo nombre pero con la condición de que se diferencien
por los parámetros: en número y/o en cantidad.
Por ejemplo, si existiera un método que suma dos números
enteros que recibe como parámetros, tendría la siguiente declaración:
public int suma(int a, int b)
Ahora, si quisiéramos sumar dos números reales, no
tenemos por qué cambiar el nombre al método, porque su tarea va a ser la misma:
sumar. Entonces aplicamos sobrecarga para declararlo así:
public double suma(double a, double b)
Nuevamente, si ahora quisiéramos sumar 3 números enteros,
aplicamos sobrecarga así:
public int
suma(int a, int b, int c)
Este concepto de sobrecarga también es aplicable en los constructores
de las clases.
La ventaja de éste concepto de
sobrecarga es que flexibiliza la funcionalidad de las clases, ofreciendo varias
alternativas de uso de una misma actividad: los métodos y los constructores.
Ejemplo
1
Considere
la existencia de una clase de nombre TVH desarrollada anteriormente.
Diseñe una nueva clase administradora de nombre ArregloTVH. Considere
métodos adicionales sobrecargados para flexibilizar el uso de la clase administradora.
public class ArregloTVH {
// atributos protegidos
protected
ArrayList<TVH> a;
//
constructor
public ArregloTVH(){
a
= new ArrayList<TVH>(); }
// métodos sobrecargados para agregar
public void agrega(TVH t){
a.add(t); }
public void agrega(String serie, int
marca, int tamaño, double precio, int origen, int tecnologia){
a.add(new TVH(serie,
marca,tamaño,precio,origen,tecnologia));
}
//
métodos sobrecargados para obtener
public TVH getTVH(int i){
return a.get(i); }
public TVH getTVH(){
return a.get(0); }
//
métodos no sobrecargados
public int getN(){
return a.size();}
public TVH busca(String
serie){
for(int i=0; i<getN(); i++){
if(getTVH(i).getSerie().equals(serie))
return getTVH(i); }
return null; }
// métodos sobrecargados para eliminar
public void elimina(int i){
a.remove(i); }
public void elimina(String
serie){
if(busca(serie)!=null)
a.remove(busca(serie));
}
public void elimina(TVH t){
a.remove(t); }
}
Considere siguiente GUI
Declare y cree un objeto de la clase ArregloTVH
Programe la
acción de los botones utilizando la funcionalidad sobrecargada.




0 comentarios:
Publicar un comentario