Conteúdo do Curso
Java OOP
Java OOP
O Que É Interface?
E se precisarmos herdar de mais de uma classe? O Java permite isso por meio de interfaces. Apesar do nome, uma interface é muito semelhante a uma classe abstrata. Vamos analisar a declaração de uma interface:
De forma simples, uma interface é utilizada para definir métodos que uma classe irá implementar. Interfaces possuem uma sintaxe distinta para sua criação. Enquanto usamos "public class className { }
" ao criar uma classe, a sintaxe para criar uma interface é diferente:
InterfaceExample.java
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
- Atenção à declaração do método;
- Não utilizamos modificadores de acesso;
- Não fornecemos corpos de métodos;
- Não há necessidade de rotular métodos como abstract já que estamos trabalhando dentro de uma interface;
- Não criamos campos dentro de interfaces.
Vamos considerar o uso de uma Interface
utilizando o exemplo de um Reprodutor de Mídia.
Temos uma Interface
chamada MediaPlayer
que possui os métodos play
, pause
e stop
. Além disso, existem duas classes que implementam essa interface de reprodutor de mídia, chamadas AudioPlayer
e VideoPlayer
.
MediaPlayer.java
AudioPlayer.java
VideoPlayer.java
public interface MediaPlayer { void play(); void pause(); void stop(); }
Como pode ser observado, criamos uma interface
e duas classes que implementam essa interface. A sintaxe é a mesma utilizada ao sobrescrever métodos abstratos. Sobrescrevemos cada método para cada classe para executar sua própria função específica.
Uma das características das interfaces é a possibilidade de implementar mais de uma interface. Vamos analisar um exemplo:
Vehicle.java
VehicleInfo.java
Car.java
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Criamos as interfaces Vehicle
e VehicleInfo
. Além disso, criamos uma classe Car
que implementa ambas essas interfaces. Dessa forma, é possível escolher quais comportamentos implementar na classe, o que complementa de maneira eficaz o princípio de abstração da programação orientada a objetos.
Trabalhar com interfaces é muito conveniente, e elas são amplamente utilizadas. No próximo capítulo, também exploraremos as principais diferenças entre uma interface e uma classe abstrata e aprenderemos qual delas é mais adequada para uso prático!
1. O que é uma interface em Java?
2. Em Java, uma classe pode implementar várias interfaces?
3. Qual é o propósito de uma interface em Java?
4. Qual palavra-chave é usada para implementar uma interface em uma classe?
5. O que acontece se uma classe declara implementar uma interface, mas não fornece implementações para todos os seus métodos?
Obrigado pelo seu feedback!