DEV Community

Cover image for Interfaces e Polimorfismo
Antonio Serra
Antonio Serra

Posted on • Updated on

Interfaces e Polimorfismo

Interfaces em Java:

O que é uma Interface?
Uma interface em Java é como um contrato que define um conjunto de métodos que uma classe deve implementar. É uma estrutura que define o que uma classe deve fazer, mas não como ela deve fazer. As interfaces são usadas para alcançar a abstração e a reutilização de código.

Exemplo:
Suponha que você esteja criando um sistema de formas geométricas e deseja garantir que todas as formas tenham um método calcularArea(). Você pode criar uma interface chamada Forma para definir esse contrato:

Image i 1

Agora, qualquer classe que queira representar uma forma geométrica deve implementar essa interface e fornecer uma implementação para o método calcularArea().

Image i 2

Polimorfismo em Java:

O que é Polimorfismo?
Polimorfismo em Java permite que objetos de diferentes classes sejam tratados de maneira uniforme, desde que compartilhem um contrato comum, como uma interface. Isso significa que você pode chamar métodos em um objeto sem saber exatamente qual classe o objeto pertence.

Exemplo:
Vamos usar o exemplo anterior com a interface Forma. Agora, podemos criar uma matriz de objetos de diferentes formas e calcular suas áreas sem se preocupar com as classes específicas:

Image i 3

Não esqueça de deixar seu like ❤️

Neste exemplo, Circulo e Retangulo são classes diferentes que implementam a interface Forma. O polimorfismo permite que tratemos todos os objetos como objetos Forma, independentemente de suas classes específicas.

Isso é uma simplificação, mas espero que ajude a entender os conceitos básicos de Interfaces e Polimorfismo em Java. Eles são fundamentais para criar código flexível e reutilizável em muitos projetos Java.

Agora vocês já está pronto para aprender sobre listas
Clique aqui para aprender🚀

Repositório com a trilha de java: https://github.com/antoniorws/basic-java

Linkedin: https://www.linkedin.com/in/antonio-rodrigo-wanderley-serra/
GitHub: https://github.com/antoniorws

Top comments (0)