RE:diferencia entre poliformismo y sobrecarga
Hola:
Polimorfismo es redefinir un método de una clase padre en una clase hija. Cuando tengas una variable de tipo padre que contenga una clase hija, se ejecutara el metodo de la clase hija.
Imagina una clase Padre y otra Hija que hereda de Padre. Ambas tienen el metodo void pinta (int valor). Si haces esto
Padre a = new Hija();
a.pinta(2);
Se ejecuta el metodo de hija, aunque a sea de tipo Padre.
Sobrecarga es definir un nuevo metodo igual que otro viejo, pero cambiando el tipo o la cantidad de parametros. El compilador, viendo los parametros, sabe a cual llamar. Por ejemplo, en la clase Padre anterior, puedes además definir void pinta (double valor)
class Padre
{
public void pinta (int valor);
public void pinta (double valor);
}
Cuando hagas
class A = new A();
a.pinta (2);
a.pinta (2.0);
El compilador sabrá a qué método llamar en función del parámetro que estás pasando.
Se bueno.