Sobrecarga de métodos

La sobrecarga de métodos es una herramienta que nos da la programación orientada objetos, ya que nos permite modelar y definir el comportamiento de los objetos como queramos, es decir de acuerdo a unos parámetros de entrada ejecutar uno u otro método. Concretamente en Java es posible sobrecargar métodos, es decir, definir dos o más dentro de la misma clase, que compartan nombre pero que las declaraciones de sus parámetros sean diferentes; la sobre carga es una forma de polimorfismo ya que en determinado momento un objeto puede asumir uno u otro comportamiento.

Cuando se llaman los métodos sobrecargados, el compilador determina cuál es el método invocado basándose en la cantidad y tipo de argumentos pasados; por consiguiente, los métodos sobrecargados deben diferir en números y tipo de parámetros. Cuando Java encuentra una llamada a un método sobrecargado, ejecuta la versión del que tiene parámetros (cantidad y tipo) que coinciden con los argumentos utilizados en la llamada.

Java diferencia los métodos sobrecargados con base en el número y tipo de argumentos que tiene el método y no por el tipo que devuelve.

También existe la sobrecarga de constructores: Cuando en una clase existen constructores múltiples, se dice que hay sobrecarga de constructores.

Ejemplo

Se define la clase Sobrecarga con tres métodos de nombre test sobrecargados, diferenciándose entre ellos por la cantidad/tipo de los parámetros main () llama a cada uno de ellos.

El método test () se sobrecargó tres veces; la primera versión no tiene parámetros; la segunda, un entero y la tercera dos enteros.

sobrecarga1 sobrecarga2

La ejecución da lugar a esta salida:
sobrecarga3

Listo, hemos terminado nuestra aplicación orientada a objetos y aplicando correctamente el concepto de herencia. Espero que este tutorial les haya sido de mas ayuda, recuerda “la práctica hace la perfección”, también si quieres aprender mas sobre el tema te invito a que veas estos posts: [Herencia y polimorfismo.]

(http://www.sebastian-gomez.com/java/herencia-y-polimorfismo/) Herencia con un ejemplo. Interfaces en Java. Escríbeme si tienes alguna duda y no olvides si te ha gustado este tutorial compartelo!

Copyrights © 2018 Sebastian Gomez. All Rights Reserved.

Sobre mí

sebastianMi nombre es Sebastián Gómez, soy ingeniero de sistemas e Informática y Magister en Ingeniería de Sistemas de la Universidad Nacional de Colombia.

Actualmente trabajo en Globant como Web UI Developer con énfasis en aplicaciones híbridas y cross compiladas. Soy el organizador del Google Developers Group de Medellín, así que contactame si quieres dar alguna charla o participar actuamente de esta comunidad.

He participado en una Startup Colombiana llamada SponzorMe al lado de Carlos Rojas y fuí participante de Startup Chile a pesar de no haber continuado con esta startup me apasiona el emprendimiento y me gusta aconsejar y ayudar startups como mentor técnico. También he trabajado en empresas Americanas como StudioHyperset en Estados Unidos y para Measured Medium. Mi interés y mi experiencia es el desarrollo de web y móvil full stack como Front-end con Javascript. Me apasiona desarrollar software, escribir código y enseñar lo que aprendo día a día.

También he trabajado como profesor en diferentes universidades en Medellín Colombia, con tematicas relacionadas con la Inteligencia Artificial, Bases de datos, programación orientada a objetos, minería de datos, desarrollo de software, desarrollo móvil y desarrollo web.

Me encanta escribir código rápido y prototipar de una manera accelerada si quieres ver que hago día a día puedes darle un vistazo a mi codepen:  https://codepen.io/seagomezar/.

Todos los días trato de crear o participar en proyectos, la mayoría open source, así que puede chequear mi GitHub:  https://github.com/seagomezar.

Mi áreas de investigación académica son: Ingeniería de software, Ingeniería de requisitos, procesamiento del lenguaje natural, Ontologías, Bases De Datos,  Machine Learning, Seguimiento de trayectorias y Modelamiento matemático de formaciones.

Estas son algunas de mis publicaciones académicas mas recientes: