¿Cómo se implementa el polimorfismo en Java?