Diferença entre paint, paintComponent e paintComponents no Swing

Qual é a diferença real entrepaint(), paintComponent() epaintComponents() no Java Swing?

Tentei entender o que explicava nos documentos do Oracle, mas não estou clar