Es una interfaz vacía (sin campo ni métodos). Ejemplos de interfaz de marcador son la interfaz serializable, clonable y remota. Todas estas interfaces son interfaces vacías.
public interface Serializable { // nothing here }
Ejemplos de Marker Interface que se utilizan en aplicaciones en tiempo real:
- Interfaz clonable : la interfaz clonable está presente en el paquete java.lang. Hay un método clon() en la clase Object . Una clase que implementa la interfaz Cloneable indica que es legal que el método clone() haga una copia campo por campo de las instancias de esa clase.
Invocar el método de clonación de Object en una instancia de la clase que no implementa la interfaz Cloneable genera una excepción CloneNotSupportedException. Por convención, las clases que implementan esta interfaz deben anular el método Object.clone().
Consulte aquí para obtener más detalles. - Interfaz serializable : la interfaz serializable está presente en el paquete java.io. Se utiliza para hacer que un objeto sea apto para guardar su estado en un archivo. Esto se llama serialización .
Las clases que no implementen esta interfaz no tendrán ninguno de sus estados serializados o deserializados. Todos los subtipos de una clase serializable son ellos mismos serializables. - Interfaz remota : la interfaz remota está presente en el paquete java.rmi. Un objeto remoto es un objeto que se almacena en una máquina y se accede desde otra máquina. Entonces, para convertir un objeto en un objeto remoto, debemos marcarlo con la interfaz remota. Aquí, la interfaz remota sirve para identificar las 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. RMI ( Invocación de método remoto ) proporciona algunas clases de conveniencia que las implementaciones de objetos remotos pueden extender y que facilitan la creación de objetos remotos.
Java
// Java program to illustrate Cloneable interface import java.lang.Cloneable; // By implementing Cloneable interface // we make sure that instances of class A // can be cloned. class A implements Cloneable { int i; String s; // A class constructor public A( int i,String s) { this .i = i; this .s = s; } // Overriding clone() method // by simply calling Object class // clone() method. @Override protected Object clone() throws CloneNotSupportedException { return super .clone(); } } public class Test { public static void main(String[] args) throws CloneNotSupportedException { A a = new A( 20 , "GeeksForGeeks" ); // cloning 'a' and holding // new cloned object reference in b // down-casting as clone() return type is Object A b = (A)a.clone(); System.out.println(b.i); System.out.println(b.s); } } |
Producción:
20 GeeksForGeeks
Java
// Java program to illustrate Serializable interface import java.io.*; // By implementing Serializable interface // we make sure that state of instances of class A // can be saved in a file. class A implements Serializable { int i; String s; // A class constructor public A( int i,String s) { this .i = i; this .s = s; } } public class Test { public static void main(String[] args) throws IOException, ClassNotFoundException { A a = new A( 20 , "GeeksForGeeks" ); // Serializing 'a' FileOutputStream fos = new FileOutputStream( "xyz.txt" ); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(a); // De-serializing 'a' FileInputStream fis = new FileInputStream( "xyz.txt" ); ObjectInputStream ois = new ObjectInputStream(fis); A b = (A)ois.readObject(); //down-casting object System.out.println(b.i+ " " +b.s); // closing streams oos.close(); ois.close(); } } |
Producción:
20 GeeksForGeeks
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA