Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java - Interfaces


Uma interface é um tipo de referência em Java. É semelhante à classe. É uma coleção de métodos abstratos. Uma classe implementa uma interface, herdando assim os métodos abstratos da interface.

Junto com métodos abstratos, uma interface também pode conter constantes, métodos padrão, métodos estáticos e tipos aninhados. Corpos de método existem apenas para métodos padrão e métodos estáticos.

Escrever uma interface é semelhante a escrever uma classe. Mas uma classe descreve os atributos e comportamentos de um objeto. E uma interface contém comportamentos que uma classe implementa.

A menos que a classe que implementa a interface seja abstrata, todos os métodos da interface precisam ser definidos na classe.

Uma interface é semelhante a uma classe das seguintes maneiras:

No entanto, uma interface é diferente de uma classe de várias maneiras, incluindo −

Declarando interfaces


A interface palavra-chave é usada para declarar uma interface. Aqui está um exemplo simples para declarar uma interface -

Exemplo


A seguir está um exemplo de uma interface -
/* File name : NameOfInterface.java */
import java.lang.*;
// Any number of import statements

public interface NameOfInterface {
   // Any number of final, static fields
   // Any number of abstract method declarations\
}

As interfaces têm as seguintes propriedades -

Exemplo

/* File name : Animal.java */
interface Animal {
   public void eat();
   public void travel();
}

Implementação de interfaces


Quando uma classe implementa uma interface, você pode pensar na classe como assinando um contrato, concordando em realizar os comportamentos específicos da interface. Se uma classe não executa todos os comportamentos da interface, a classe deve se declarar como abstrata.

Uma classe usa os implementos palavra-chave para implementar uma interface. A palavra-chave implements aparece na declaração de classe após a parte extends da declaração.

Exemplo

/* File name : MammalInt.java */
public class MammalInt implements Animal {

   public void eat() {
      System.out.println("Mammal eats");
   }

   public void travel() {
      System.out.println("Mammal travels");
   } 

   public int noOfLegs() {
      return 0;
   }

   public static void main(String args[]) {
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

Isso produzirá o seguinte resultado -

Saída

Mammal eats
Mammal travels

Ao substituir métodos definidos em interfaces, existem várias regras a serem seguidas -

Quando interfaces de implementação, existem várias regras -

Extensão de interfaces


Uma interface pode estender outra interface da mesma forma que uma classe pode estender outra classe. O estende A palavra-chave é usada para estender uma interface e a interface filha herda os métodos da interface pai.

A interface Sports a seguir é estendida pelas interfaces Hockey e Football.

Exemplo

// Filename: Sports.java
public interface Sports {
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

// Filename: Football.java
public interface Football extends Sports {
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

// Filename: Hockey.java
public interface Hockey extends Sports {
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

A interface Hockey tem quatro métodos, mas herda dois de Sports; assim, uma classe que implementa Hockey precisa implementar todos os seis métodos. Da mesma forma, uma classe que implementa Football precisa definir os três métodos de Football e os dois métodos de Sports.

Estendendo várias interfaces


Uma classe Java só pode estender uma classe pai. A herança múltipla não é permitida. Interfaces não são classes, entretanto, e uma interface pode estender mais de uma interface pai.

A palavra-chave extends é usada uma vez e as interfaces pai são declaradas em uma lista separada por vírgulas.

Por exemplo, se a interface Hockey estendesse tanto Sports quanto Event, ela seria declarada como −

Exemplo

public interface Hockey extends Sports, Event

Interfaces de marcação


O uso mais comum de estender interfaces ocorre quando a interface pai não contém nenhum método. Por exemplo, a interface MouseListener no pacote java.awt.event estendeu java.util.EventListener, que é definido como −

Exemplo

package java.util;
public interface EventListener
{}

Uma interface sem métodos é chamada de marcação interface. Existem dois propósitos básicos de design de interfaces de marcação -

Cria um pai comum − Assim como a interface EventListener, que é estendida por dezenas de outras interfaces na API Java, você pode usar uma interface de marcação para criar um pai comum entre um grupo de interfaces. Por exemplo, quando uma interface estende EventListener, a JVM sabe que essa interface específica será usada em um cenário de delegação de eventos.

Adiciona um tipo de dados a uma classe − Esta situação é a origem do termo etiquetagem. Uma classe que implementa uma interface de marcação não precisa definir nenhum método (já que a interface não possui nenhum), mas a classe se torna um tipo de interface por meio de polimorfismo.

Java

  1. Palavra-chave final Java
  2. Java instanceof Operator
  3. Interface Java
  4. Classe estática aninhada em Java
  5. Classe anônima Java
  6. Classe Java Singleton
  7. Reflexão Java
  8. Classe Java ObjectOutputStream
  9. Genéricos Java
  10. Classe de arquivo Java