A programação evoluiu significativamente ao longo dos anos, com diferentes paradigmas surgindo para atender a necessidades específicas no desenvolvimento de software. Um desses paradigmas é amplamente utilizado para modelar sistemas complexos de forma intuitiva, utilizando conceitos como herança, polimorfismo, encapsulamento e abstração. Qual é esse paradigma?