CardLayout is a layout manager that stacks components like a deck of cards, with only one component visible at a time. Components are added sequentially and can be navigated using next(), previous(), or first()/last() methods, making it ideal for wizard-style interfaces or tabbed panels.