A recursive function typically has a base case that stops the recursion and one or more recursive cases that call the function itself.