Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Java - Interfaces

Una interfaz es un tipo de referencia en Java. Es similar a la clase. Es una colección de métodos abstractos. Una clase implementa una interfaz, por lo que hereda los métodos abstractos de la interfaz.

Junto con los métodos abstractos, una interfaz también puede contener constantes, métodos predeterminados, métodos estáticos y tipos anidados. Los cuerpos de métodos existen solo para métodos predeterminados y métodos estáticos.

Escribir una interfaz es similar a escribir una clase. Pero una clase describe los atributos y comportamientos de un objeto. Y una interfaz contiene comportamientos que implementa una clase.

A menos que la clase que implementa la interfaz sea abstracta, todos los métodos de la interfaz deben definirse en la clase.

Una interfaz es similar a una clase de las siguientes maneras −

Sin embargo, una interfaz es diferente de una clase en varias formas, incluyendo −

Declaración de interfaces

La interfaz La palabra clave se utiliza para declarar una interfaz. Aquí hay un ejemplo simple para declarar una interfaz −

Ejemplo

El siguiente es un ejemplo de una interfaz −

/* 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\
}

Las interfaces tienen las siguientes propiedades −

Ejemplo

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

Implementación de interfaces

Cuando una clase implementa una interfaz, puede pensar en la clase como firmando un contrato, acordando realizar los comportamientos específicos de la interfaz. Si una clase no realiza todos los comportamientos de la interfaz, la clase debe declararse como abstracta.

Una clase utiliza los implementos palabra clave para implementar una interfaz. La palabra clave implements aparece en la declaración de clase después de la parte extendida de la declaración.

Ejemplo

/* 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();
   }
} 

Esto producirá el siguiente resultado −

Salida

Mammal eats
Mammal travels

Al anular los métodos definidos en las interfaces, hay varias reglas a seguir −

Cuando la implementación interactúa, hay varias reglas −

Extensión de interfaces

Una interfaz puede extender otra interfaz de la misma manera que una clase puede extender otra clase. Las extensiones La palabra clave se utiliza para ampliar una interfaz y la interfaz secundaria hereda los métodos de la interfaz principal.

La siguiente interfaz de deportes se amplía con las interfaces de hockey y fútbol.

Ejemplo

// 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);
}

La interfaz de Hockey tiene cuatro métodos, pero hereda dos de Deportes; por lo tanto, una clase que implemente Hockey necesita implementar los seis métodos. De manera similar, una clase que implemente Football necesita definir los tres métodos de Football y los dos métodos de Sports.

Extensión de múltiples interfaces

Una clase Java solo puede extender una clase principal. No se permite la herencia múltiple. Sin embargo, las interfaces no son clases y una interfaz puede extender más de una interfaz principal.

La palabra clave extends se usa una vez y las interfaces principales se declaran en una lista separada por comas.

Por ejemplo, si la interfaz de Hockey se extendiera tanto a Deportes como a Eventos, se declararía como −

Ejemplo

public interface Hockey extends Sports, Event

Interfases de etiquetado

El uso más común de las interfaces extendidas ocurre cuando la interfaz principal no contiene ningún método. Por ejemplo, la interfaz MouseListener en el paquete java.awt.event extendió java.util.EventListener, que se define como −

Ejemplo

package java.util;
public interface EventListener
{}

Una interfaz sin métodos se denomina etiquetado interfaz. Hay dos propósitos básicos de diseño de las interfaces de etiquetado:

Crea un padre común − Al igual que con la interfaz EventListener, que se amplía con docenas de otras interfaces en la API de Java, puede usar una interfaz de etiquetado para crear un padre común entre un grupo de interfaces. Por ejemplo, cuando una interfaz amplía EventListener, la JVM sabe que esta interfaz en particular se utilizará en un escenario de delegación de eventos.

Agrega un tipo de datos a una clase − De esta situación es de donde proviene el término etiquetar. Una clase que implementa una interfaz de etiquetado no necesita definir ningún método (ya que la interfaz no tiene ninguno), pero la clase se convierte en un tipo de interfaz a través del polimorfismo.


Java

  1. Palabra clave final de Java
  2. Operador de instancia de Java
  3. Interfaz Java
  4. Clase estática anidada de Java
  5. Clase anónima de Java
  6. Clase única de Java
  7. Reflexión Java
  8. Clase Java ObjectOutputStream
  9. Genéricos de Java
  10. Clase de archivo Java
  11. Interfaz vs clase abstracta en Java:¿cuál es la diferencia?