elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Diferencias entre overload y override??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Diferencias entre overload y override??  (Leído 6,888 veces)
Carlosjava

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Diferencias entre overload y override??
« en: 28 Julio 2015, 17:49 »

Perdona, sé que pido mucho... solo tengo una duda, me gustaria saber que diferencias hay entre estos 2, gracias.


En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Diferencias entre overload y override??
« Respuesta #1 en: 28 Julio 2015, 18:06 »

Overload es la sobrecarga de metodos, es que en una misma clase puedas tener dos metodos que se llamen de la misma forma pero que se diferiencen a traves de la cantidad de parametros

Override es sobrescritura de metodos es utilizado cuando hereados los metodos de una clase y un metodo lo redefines en la clase hija esto tiene mas importancia cuando lo combinas con el polimorfismo

te dejo algunos ejemplos:
http://www.programcreek.com/2009/02/overriding-and-overloading-in-java-with-examples/

http://www.edu4java.com/es/progbasica/progbasica17.html


En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Diferencias entre overload y override??
« Respuesta #2 en: 28 Julio 2015, 18:56 »

Te agradecería si marcas los temas como solucionados (ícono check verde al tema) para mantener el orden.

1. Overloading (sobrecarga)

La sobrecarga es cuando en una misma clase redefines un mismo método. Esta técnica tiene una restricción y es:

  • Un método sobrecargado debe tener diferentes parámetros (tipos de dato)

Así, lo siguiente es correcto:

Código
  1. public int multiplicar(int x, int y) {
  2. return x * y;
  3. }
  4.  
  5. public int multiplicar(float x, float y) {
  6. return x * y;
  7. }

Pero esto es incorrecto:

Código
  1. public int multiplicar(int x, int y) {
  2. return x;
  3. }
  4.  
  5. public float multiplicar(int x, int y) {
  6. return new Float(String.valueOf(x));
  7. }

A pesar que el tipo de retorno es diferente, los parámetros son iguales, por lo que el compilador lo detectará como el mismo método.

2. Overriding (sobreescritura)

La sobreescritura sucede cuando tu heredas una clase o cuando implementas una interfaz. En el caso de herencia, es obligatorio sobreescribir los métodos de una superclase si estos son abstractos, si no son abstractos, es opcional sobreescribirlos; pero generalmente así sucede para dar un comportamiento polimórfico.

Código
  1. public abstract class Persona {
  2.  
  3. // obligatorio sobreescribir en subclases
  4. public abstract void lenguaje();
  5.  
  6. // no es obligatorio, ya que no es abstracto
  7. public void caracteristicas() {
  8. System.out.println("dos ojos, una nariz y una boca");
  9. }
  10.  
  11. }

Código
  1. public class Canadiense extends Persona {
  2.  
  3. @Override // indica que se sobreescribe
  4. public void lenguaje() {
  5. System.out.println("Inglés");
  6. }
  7.  
  8. // método caracteristicas heredado
  9.  
  10. }

En el caso de una clase que implemente una interfaz, es obligatorio sobreescribir los métodos  de la interfaz, siempre y cuando estos no sean default, ya que por defecto, los métodos  de una interfaz son públicos y abstractos.

Código
  1. public interface Construccion {
  2.  
  3. // necesita ser sobreescrito
  4. int cantidadColumnas();
  5.  
  6. // necesita ser sobreescrito
  7. int cantidadPisos();
  8.  
  9. // no es necesario sobreescribir
  10. default boolean tieneAsensor() {
  11. return true;
  12. }
  13.  
  14. }

Código
  1. public class Edicio implements Construccion {
  2.  
  3. @Override
  4. public int cantidadColumnas() {
  5. return 20;
  6. }
  7.  
  8. @Override
  9. public int cantidadPisos() {
  10. return 10;
  11. }
  12.  
  13. }
  14.  
« Última modificación: 28 Julio 2015, 23:11 por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Carlosjava

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Diferencias entre overload y override??
« Respuesta #3 en: 28 Julio 2015, 22:23 »

Muchas gracias!! ahora si lo tengo claro!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Diferencias entre un mpeg y un avi
Multimedia
trapo 2 953 Último mensaje 19 Noviembre 2004, 00:08
por Songoku
Diferencias entre VCDs
Multimedia
¤ Nerviozzo ¤ 0 13,054 Último mensaje 13 Marzo 2005, 21:18
por ¤ Nerviozzo ¤
DIFERENCIAS ENTRE VB 6.0 Y VB.NET ??? « 1 2 »
.NET (C#, VB.NET, ASP)
Helicot 10 6,029 Último mensaje 5 Agosto 2007, 12:40
por Meta
[C#] Problema override WndProc
.NET (C#, VB.NET, ASP)
.:UND3R:. 1 969 Último mensaje 19 Noviembre 2015, 22:26
por .:UND3R:.
Overload C++
.NET (C#, VB.NET, ASP)
JayJay0525 2 327 Último mensaje 25 Septiembre 2018, 18:50
por ThunderCls
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines