Como uma classe pode ter um membro de seu próprio tipo, não é essa recursão infinit

Digo que eu defino uma classe que tem como membro uma variável do mesmo tipo que ela mesm

public class abc {
    private abc p;
}

Isso realmente funciona, para minha surpres

Por que eu acho que não deveria: criar uma instância deabc, contém uma variável do tipoabc, que contém uma variável do tipoabc, que contém uma variável do tipoabc, qual ....

Obviamente, estou errado, alguém poderia me esclarecer sobre como?

questionAnswers(12)

yourAnswerToTheQuestion