Tipos de interfaces en Java

En Java, una interfaz es un tipo de referencia similar a una clase que puede contener solo constantes, firmas de métodos, métodos predeterminados y métodos estáticos, y tipos anidados ts. En las interfaces, los cuerpos de los métodos solo existen para los métodos predeterminados y los métodos estáticos. Escribir una interfaz es similar a escribir en una clase estándar. Aún así, una clase describe los objetos de atributos y comportamientos internos, y una interfaz contiene comportamientos que implementa una clase. Por otro lado, a menos que la clase que implementa la interfaz sea puramente abstracta y todos los métodos de la interfaz deban definirse en esa clase utilizable dada.

Una interfaz es similar a una clase en las siguientes formas:

  1. Una interfaz puede contener cualquier número de métodos en esa interfaz.
  2. El nombre de una interfaz se escribe en un archivo con – (extensión .java) y el nombre de la interfaz debe coincidir con el nombre del archivo de ese programa Java.
  3. El código de bytes de una interfaz determinada se creará en un archivo – .class.
  4. Las interfaces aparecen en los paquetes, y su archivo de código de bytes correspondiente debe estar en una estructura similar que coincida con el nombre del paquete.

¿Cómo declarar interfaces?

La palabra clave de interfaz se utiliza para declarar una interfaz. Aquí tenemos un ejemplo simple de cómo declarar una interfaz.

Java

public interface NameOfTheinterface
{
 
  // Any final, static fields here
 
  // Any abstract method declaration here
 
}
//This is Declaration of the interface

Propiedades de una interfaz

Las interfaces tienen las siguientes propiedades:

  • Una interfaz es implícitamente puramente abstracta.
  • no es necesario usar la palabra clave abstracta al declarar una interfaz
  • Cada método en una interfaz también es implícitamente abstracto, por lo que no se necesita la palabra clave abstracta.
  • Los Métodos en una interfaz son implícitamente públicos dentro de ella.

Ejemplo: Nombre de archivo – Car.java

Java

// This is Program To implement the Interface
interface car
{
   void display();
}
 
class model implements car
{
   public void display()
   {
    
       System.out.println("im a Car");
                     // the code output will print "im a car"
   }
 
  public static void main(String args[])
  
    {
   model obj = new model();
   obj.display();
    }
}
Producción

im a Car

Tipos de interfaces

  1. Interfaz funcional
  2. Interfaz de marcador

 1. Interfaz funcional:

  • La interfaz funcional es una interfaz que solo tiene un método abstracto puro.
  • Puede tener cualquier número de métodos estáticos y predeterminados y también incluso métodos públicos de clases java.lang.Object

Cuando una interfaz contiene solo un método abstracto, se conoce como interfaz funcional.

Ejemplos de interfaces funcionales:

  • Ejecutable : contiene solo el método run()
  • ActionListener : contiene solo actionPerformed()
  • ItemListener : contiene solo el método itemStateChanged()

Ahora veremos un ejemplo de una interfaz funcional: 

Ejemplo:

Java

// This is Program To implement the Functional Interface
 
interface Writable
{ 
    void write(String txt); 
} 
        // FuninterExp is a Example of Functional Interface
   public class FuninterExp implements Writable
    { 
           public void write(String txt)
        { 
            System.out.println(txt); 
        } 
         
     public static void main(String[] args)
     { 
        FuninterExp obj = new FuninterExp(); 
        obj.write(" GFG - GEEKS FOR GEEKS "); 
     } 
}
Producción

 GFG - GEEKS FOR GEEKS 

2. Interfaz de marcador:

  • Una interfaz que no contiene métodos, campos, métodos abstractos ni constantes se denomina interfaz de marcador.
  • Además, si una interfaz está vacía, se conoce como interfaz de marcador.
  • Las interfaces serializable y clonable son ejemplos de interfaces de marcador.

Por ejemplo:

Java

// Simple Example to understand marker interface
 
public interface interface_name 
   
    { 
         // empty
    }

Hay dos alternativas a la interfaz de marcador que producen el mismo resultado que la interfaz de marcador.

1) Indicadores internos: se utiliza en lugar de la interfaz de marcador para implementar cualquier operación específica.

2) Anotaciones: al aplicar anotaciones a cualquier clase, podemos realizar acciones específicas en ella.

Interfaz de marcador incorporada

Hay tres tipos de interfaces de marcador integradas en Java. Estos son

  1. Interfaz clonable
  2. Interfaz serializable
  3. Interfaz remota

1. Interfaz clonable

  • Una interfaz clonable en Java también es una interfaz Marker que pertenece a los paquetes java.lang .
  • Genera una réplica (copia) de un objeto con un nombre diferente. Por lo tanto, podemos implementar la interfaz en la clase cuyo objeto de clase se va a clonar.
  • Implementa el método clone() de la clase Object.

Nota: una clase que implementa la interfaz Cloneable debe anular el método clone() mediante el uso de un método público.

Por ejemplo:

Java

// This is Program To implement the Cloneable Interface
 import java.lang.Cloneable;
 
 
 class abc implements Cloneable
// Here The abc is a class constructor
{
    int x;
    String y;
    // Here The abc is a class constructor
    public abc(int x,String y)
    {
        this.x = x;
        this.y = y;
    }
     
    protected Object clone()
    throws CloneNotSupportedException
     
    {
        return super.clone();
    }
}
 
    public class Test
 {
        public static void main(String[] args)
             throws CloneNotSupportedException
         {
           
        abc p = new abc(10, "We Are Reading GFG Now");
        abc q = (abc)p.clone();
 
        System.out.println(q.x);
        System.out.println(q.y);
           
        }
 }
Producción

10
We Are Reading GFG Now

2. Interfaz serializable:

  • Es una interfaz de marcador en Java que se define en el paquete java.io. Si queremos que la clase sea serializable, debemos implementar la interfaz Serializable. Si una clase implementa la interfaz Serializable, podemos serializar o deserializar el estado de un objeto de esa clase.
  • La serialización es un mecanismo en el que el estado de nuestro objeto está listo desde la memoria y escrito en un archivo o desde las bases de datos.
  • Deserialización: es lo opuesto a la serialización, lo que significa que la lectura del estado del objeto de un archivo o base de datos y la escritura en la memoria se denomina deserialización de un objeto.

Serialización: convertir un objeto en un flujo de bytes.

Deserialización: conversión de un flujo de bytes en un objeto.

3. Interfaz remota:

  • Una interfaz remota es una interfaz de marcador que pertenece al paquete java.rmi . Marca un objeto como remoto al que se puede acceder desde el host de otra máquina.
  • Necesitamos implementar la interfaz remota si queremos hacer que un objeto sea remoto. Por lo tanto, identifica la interfaz.
  • Una interfaz remota sirve para identificar interfaces cuyos métodos pueden invocarse desde una máquina virtual no local. Cualquier objeto que sea un objeto remoto debe implementar directa o indirectamente esta interfaz.
  • La interfaz remota es una interfaz que declara el conjunto de métodos que se invocarán desde una máquina virtual Java remota, es decir (JVM

Publicación traducida automáticamente

Artículo escrito por khurpaderushi143 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *