una sirve qué que para interfaz interfaces implementacion entre ejemplos diferencia código clases clase asociarías abstractas abstracta java interface annotations language-features

sirve - ¿Cuál es la diferencia entre la interfaz y la interfaz @ en java?



public interface java (4)

El símbolo @ denota una definición de tipo de anotación.

Eso significa que no es realmente una interfaz, sino un nuevo tipo de anotación, que se utilizará como un modificador de función, como @override .

Ver esta entrada javadocs sobre el tema.

No he tocado Java desde que usé JBuilder a fines de los 90 mientras estaba en la Universidad, así que estoy un poco fuera de contacto. Al menos, he estado trabajando en un pequeño proyecto de Java esta semana y uso Intellij IDEA como mi IDE , para un cambio de ritmo de mi desarrollo regular .Net.

Me doy cuenta de que tiene soporte para agregar interfaces y @interfaces, ¿qué es un @interface y en qué se diferencia de una interfaz normal?

public interface Test { }

contra

public @interface Test { }

He hecho un poco de búsqueda, pero no pude encontrar una gran cantidad de información útil que se refiera a @interface.


La palabra clave de la interface indica que está declarando una clase de interfaz tradicional en Java.
La palabra clave @interface se utiliza para declarar un nuevo tipo de anotación.

Consulte el http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html sobre las anotaciones para obtener una descripción de la sintaxis.
Vea el JLS si realmente quiere entrar en los detalles de lo que significa @interface .


interfaz:

En general, una interfaz expone un contrato sin exponer los detalles de implementación subyacentes. En la programación orientada a objetos, las interfaces definen tipos abstractos que exponen el comportamiento, pero no contienen lógica. La implementación está definida por la clase o tipo que implementa la interfaz.

@interface: (Tipo de anotación)

Tomemos el siguiente ejemplo, que tiene muchos comentarios:

public class Generation3List extends Generation2List { // Author: John Doe // Date: 3/17/2002 // Current revision: 6 // Last modified: 4/12/2004 // By: Jane Doe // Reviewers: Alice, Bill, Cindy // class code goes here }

En lugar de esto, puede declarar un tipo de anotación

@interface ClassPreamble { String author(); String date(); int currentRevision() default 1; String lastModified() default "N/A"; String lastModifiedBy() default "N/A"; // Note use of array String[] reviewers(); }

que luego puede anotar una clase de la siguiente manera:

@ClassPreamble ( author = "John Doe", date = "3/17/2002", currentRevision = 6, lastModified = "4/12/2004", lastModifiedBy = "Jane Doe", // Note array notation reviewers = {"Alice", "Bob", "Cindy"} ) public class Generation3List extends Generation2List { // class code goes here }

PD: Muchas anotaciones reemplazan los comentarios en el código.

Referencia: http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html


interface: define el contrato para una clase que lo implementa

@interface: define el contrato para una anotación