Es la propiedad de un método por el cual puede llamarse a si mismo, se puede
utilizar como una alternativa a la iteración, el uso de la recursión permite a los programadores especificar soluciones naturales y sencillas que en caso contrario serian difíciles de resolver por eso la recursión es una herramienta poderosa e importante en la resolución de problemas y en la programación. Un método recursivo se invoca a si mismo de forma directa o indirecta, un requisito para que un algoritmo recursivo sea correcto es que no genere una secuencia de este tipo no puede terminar nunca, la definición recursiva debe incluir una condición de salida que se llama componente base, en el que f(n) se defina directamente; es decir no recursivamente, para uno o más valores de n. La recursividad indirecta se produce cuando un método llama a otro, que eventualmente terminara llamando de nuevo al primer método. Para evitar que un método recursivo continue llamándose a si mismo indefinidamente y desborde la pila que registra las llamadas hay que fijar en el que una condición de parada de las llamadas recursivas y evitar las indefinidas. La recursión tiene muchas desventajas, se invoca repetidamente al mecanismo de llamadas a métodos a métodos y en consecuencia se necesita un tiempo suplementarios para realizar cada llamada , cada llamada recursiva hace que se realice una nueva creación y copia de las variables de la función, esto puede consumir memoria.