🔹 Uma interface é como um contrato 📜 que define um conjunto de métodos que uma classe deve obrigatoriamente implementar.
🔹 Ela define o que fazer ✍️, mas não diz como fazer 🛠️ — isso fica a cargo da classe que a implementa.
🔹 Interfaces garantem que classes diferentes possam ser usadas de forma intercambiável 🔄, desde que implementem a mesma interface.
Jutsu
No universo Naruto, ninjas usam várias técnicas (jutsus). A interface Jutsu
define que qualquer ninja que use jutsu deve implementar o método usarJutsu()
.
// Interface que define um Jutsu
public interface Jutsu {
void usarJutsu();
}
Jutsu
em Classes Ninja
// Naruto implementa Jutsu
public class Naruto implements Jutsu {
@Override
public void usarJutsu() {
System.out.println("Naruto usa Rasengan!");
}
}
// Sasuke implementa Jutsu
public class Sasuke implements Jutsu {
@Override
public void usarJutsu() {
System.out.println("Sasuke usa Chidori!");
}
}
public class TesteJutsu {
public static void main(String[] args) {
Jutsu naruto = new Naruto();
Jutsu sasuke = new Sasuke();
naruto.usarJutsu(); // Naruto usa Rasengan!
sasuke.usarJutsu(); // Sasuke usa Chidori!
}
}