A palavra-chave interface em Java é usada para declarar um tipo especial de classe que contém apenas métodos abstratos, métodos padrão, métodos estáticos e variáveis finais. As interfaces oferecem uma maneira de obter abstração e herança múltipla em Java.
Uso
As interfaces são usadas para especificar um conjunto de métodos que uma classe deve implementar. Eles são particularmente úteis para definir um contrato ao qual várias classes podem aderir, garantindo que elas forneçam funcionalidades específicas.
Campos constantes: Os campos declarados em uma interface são implicitamente public, static e final.
Métodos abstratos: Métodos sem um corpo que devem ser implementados pelas classes que implementam a interface.
Métodos padrão: Métodos com um corpo que fornecem uma implementação padrão.
Métodos estáticos: Métodos com um corpo que pertence à própria classe de interface.
Exemplos
Exemplo 1: Interface básica
interfaceAnimal{voideat();voidsleep();}classDogimplementsAnimal{publicvoideat(){
System.out.println("Dog is eating");}publicvoidsleep(){
System.out.println("Dog is sleeping");}}publicclassInterfaceExample{publicstaticvoidmain(String[] args){
Dog dog =newDog();
dog.eat();
dog.sleep();}}Tecnologia
Neste exemplo, a interface Animal declara dois métodos abstratos: eat e sleep. A classe Dog implementa a interface Animal e fornece implementações concretas para esses métodos.
Exemplo 2: Interface com método padrão
interfaceVehicle{voidstart();defaultvoidstop(){
System.out.println("Vehicle is stopping");}}classCarimplementsVehicle{publicvoidstart(){
System.out.println("Car is starting");}}publicclassDefaultMethodExample{publicstaticvoidmain(String[] args){
Car car =newCar();
car.start();
car.stop();}}Tecnologia
Aqui, a interface Vehicle inclui um método padrão stop. A classe Car implementa a interface Vehicle e fornece uma implementação para o método start. O método padrão stop é herdado e pode ser usado como está.
Exemplo 3: Interface com método estático
interfaceCalculator{static int add(int a, int b){return a + b;}}publicclassStaticMethodExample{publicstaticvoidmain(String[] args){
int result = Calculator.add(5,3);
System.out.println("Sum: "+ result);}}Tecnologia
Este exemplo demonstra uma interface Calculator com um método estático add. O método estático pode ser chamado diretamente usando o nome da interface sem a necessidade de uma instância.
Dicas e práticas recomendadas
Responsabilidade única: Mantenha as interfaces concentradas em uma única responsabilidade. Isso facilita a compreensão e a implementação.
Convenções de nomenclatura: Use nomes significativos para as interfaces. Geralmente, os nomes das interfaces são adjetivos ou substantivos que descrevem o comportamento ou a função, como Runnable, Serializable, ou List.
Evite a sobrecarga: Evite sobrecarregar métodos em interfaces para manter a clareza e a simplicidade.
Use os métodos padrão com sabedoria: Os métodos padrão podem ser úteis para proporcionar compatibilidade com versões anteriores, mas use-os com moderação para evitar complicar a interface.
Interfaces de documentos: Documente claramente a finalidade e o comportamento esperado de cada método na interface para orientar os implementadores.
Prefira a composição à herança: Use interfaces para definir recursos e prefira a composição à herança para obter um código flexível e de fácil manutenção.
Conceitos adicionais
Várias interfaces
Uma classe em Java pode implementar várias interfaces, o que permite que ela herde os métodos abstratos de todas as interfaces implementadas.
interfaceMovable{voidmove();}interfaceStoppable{voidstop();}classRobotimplementsMovable, Stoppable {publicvoidmove(){
System.out.println("Robot is moving");}publicvoidstop(){
System.out.println("Robot has stopped");}}publicclassMultipleInterfacesExample{publicstaticvoidmain(String[] args){
Robot robot =newRobot();
robot.move();
robot.stop();}}Tecnologia
Neste exemplo, a classe Robot implementa as interfaces Movable e Stoppable, fornecendo implementações para os métodos definidos em ambas as interfaces.
A palavra-chave
interfaceem Java é usada para declarar um tipo especial de classe que contém apenas métodos abstratos, métodos padrão, métodos estáticos e variáveis finais. As interfaces oferecem uma maneira de obter abstração e herança múltipla em Java.Uso
As interfaces são usadas para especificar um conjunto de métodos que uma classe deve implementar. Eles são particularmente úteis para definir um contrato ao qual várias classes podem aderir, garantindo que elas forneçam funcionalidades específicas.
Sintaxe
InterfaceName: O nome da interface.public,staticefinal.Exemplos
Exemplo 1: Interface básica
Neste exemplo, a interface
Animaldeclara dois métodos abstratos:eatesleep. A classeDogimplementa a interfaceAnimale fornece implementações concretas para esses métodos.Exemplo 2: Interface com método padrão
Aqui, a interface
Vehicleinclui um método padrãostop. A classeCarimplementa a interfaceVehiclee fornece uma implementação para o métodostart. O método padrãostopé herdado e pode ser usado como está.Exemplo 3: Interface com método estático
Este exemplo demonstra uma interface
Calculatorcom um método estáticoadd. O método estático pode ser chamado diretamente usando o nome da interface sem a necessidade de uma instância.Dicas e práticas recomendadas
Runnable,Serializable, ouList.Conceitos adicionais
Várias interfaces
Uma classe em Java pode implementar várias interfaces, o que permite que ela herde os métodos abstratos de todas as interfaces implementadas.
Neste exemplo, a classe
Robotimplementa as interfacesMovableeStoppable, fornecendo implementações para os métodos definidos em ambas as interfaces.