Разница между paint, paintComponent и paintComponents в Swing

Какова реальная разница междуpaint(), paintComponent() а такжеpaintComponents() в Java Swing?

Я пытался понять, что объясняется в документации Oracle, но мне не ясно.