1. Interfaz: una "clase especial" que resume las clases más a fondo, y solo puede contener métodos abstractos en la interfaz. La interfaz no se preocupa por los datos de estado internos de la clase y define las especificaciones que cumplen un lote de clases. (Solo estipula que se deben proporcionar ciertos métodos en este lote de clases, y siempre que estos métodos puedan cumplir con los requisitos reales).
En el lenguaje de programación Java, es un tipo abstracto, una colección de métodos abstractos e interfaces generalmente se declaran como interfaz. Una clase hereda los métodos abstractos de la interfaz heredando la interfaz.
Las interfaces no son clases, y la forma en que escriben interfaces es muy similar a las clases, pero pertenecen a diferentes conceptos. La clase describe las propiedades y métodos de un objeto. La interfaz contiene los métodos a implementar la clase.
A menos que la clase que implementa una interfaz es una clase abstracta, la clase define todos los métodos en la interfaz.
La interfaz no se puede instanciar, pero se puede implementar. Una clase que implementa una interfaz debe implementar todos los métodos descritos en la interfaz, de lo contrario, debe declararse como una clase abstracta. Además, en Java, los tipos de interfaz se pueden usar para declarar una variable, pueden ser un puntero nulo o vinculado a un objeto implementado con esta interfaz.
Definición: [Modificador] El nombre de la interfaz de la interfaz extiende la interfaz principal 1, interfaz de asignación 2, ... // No extiende la interfaz parent 1 ... es definir la interfaz
{
// cero a múltiples definiciones constantes ...
// Definición de método de instancia de abstracto cero a múltiple ...
}
[Descripción de la sintaxis]: 1. El modificador puede ser público u omitido. Si se omite el carácter de control de acceso público, es el permiso de acceso al paquete.
2. Todos los miembros de la interfaz se modifican públicamente porque la interfaz es pública y puede ser accedida por todas las clases. La modificación predeterminada del atributo en la interfaz es: PublicStaticFinal. Independientemente de si el atributo está escrito o no, la modificación predeterminada del mismo método es: PublicAbstract, Clase interna: PublicStatic. Se agregarán por defecto.
3. No puede haber constructores en los miembros, y no puede haber bloques de inicialización.
4. Un archivo fuente de Java solo puede definir como máximo una interfaz, porque se modifica públicamente, y el nombre almacenado debe ser el mismo que el nombre de la clase modificada públicamente, y la interfaz puede considerarse como una clase especial.
2. Interfaz Heritancia: una interfaz puede tener múltiples interfaces principales directas, y una interfaz solo puede heredar interfaces, pero no clases.
[Nota]: a. La interfaz infantil hereda la interfaz principal y obtendrá todos los métodos abstractos, atributos constantes, clases internas y otras definiciones definidas en la interfaz principal.
3. Uso de la interfaz: sintaxis: [modificador] El nombre de clase de clase extiende la interfaz de la clase principal 1, interfaz 2 ... {cuerpo de clase}.
【Precauciones】
a. Descripción: Una clase puede heredar una clase principal y múltiples interfaces al mismo tiempo, pero se debe colocar después de los implementos.
b. La interfaz no puede crear una instancia, pero puede declarar variables, pero debe referirse al objeto de su clase de implementación.
do. El objetivo principal debe ser implementado por clase.
d. Método de implementación: use la palabra clave de implementos
mi. Después de que una clase hereda una interfaz, debe implementar completamente todos los métodos abstractos definidos en estas interfaces (es decir, reescribir estos métodos de clase en la subclase). De lo contrario, si no se implementa completamente, esta clase solo puede definirse como una clase abstracta.
F. Al anular el método de interfaz, el modificador solo puede ser más grande o igual que la clase principal, por lo que también debe ser un modificador público.
gramo. Todas las variables de tipo de interfaz se pueden asignar directamente a las variables de tipo de objeto.
Publique el código de muestra (citado a Li Gang's Crazy Java):
// Defina una salida de interfaz de interfaz de salida {// El atributo solo puede definirse como constantes int max_cache_line = 50; // principalmente defina el espacio de almacenamiento // El método abstracto definido en la interfaz solo puede ser public void out (); void getData (string msg); } // Definir un producto de interfaz de producto de interfaz {int getProDucetime (int a); } // deja que la clase de impresora implementa la interfaz definida de la clase pública Impresora implementa la salida, producto {string privado [] printData = new String [max_cache_line]; privado int dataNum = 0; public void out () // Reescribe el método de salida de la interfaz principal {while (dataNum> 0) {system.out.println ("print print"+printData [0]); System.ArrayCopy (printData, 1, printData, 0,-dataNum); }} public void getData (string msg) // Reescribe el método de salida de la interfaz principal {if (dataNum> = max_cache_line) {system.out.println ("full"); } else {printData [dataNum ++] = msg; }} public int getProDucetime (int a) // Reescribe el método del producto de la interfaz principal {return a = a; } public static void main (string [] args) {// La interfaz principal puede declarar variables, pero no puede crear instancias, polimorfismo: la declaración de salida, pero la instancia creada es la salida de la impresora o = nueva impresora (); O.getData ("xiuxiu"); O.out (); // Llame directamente al método de salida // La interfaz principal puede declarar variables, pero no puede crear instancias, polimorfismo: la declaración de salida, pero la instancia creada es el producto de la impresora p = nueva impresora (); System.out.println (p.getProDucetime (82)); // Todas las variables de referencia de tipo de interfaz se pueden asignar directamente a la variable de tipo de objeto Obj = p; Objer obj1 = o; }}4. Similidades y diferencias entre las clases e interfaces abstractas:
mismo:
1. Todos son métodos abstractos.
2. No se puede crear ningún caso.
3. Las subclases deben implementar todos los métodos abstractos dentro de ellos después de heredarlos. Si no se implementan completamente, la clase solo puede definirse como una clase abstracta.
Diferente:
1. Solo puede haber métodos abstractos en la interfaz y métodos ordinarios en la clase abstracta.
2. Los atributos en la clase de interfaz tienen el modificador PublicStaticFinal de forma predeterminada, pero los atributos en la clase abstracta pueden ser ordinarios.
3. La interfaz no tiene un bloque de inicialización, pero se encuentra en la clase abstracta.
4. Una interfaz puede tener múltiples interfaces principales, pero una clase abstracta solo puede tener una clase principal.
Resumir
Lo anterior se trata de la interfaz y los ejemplos de uso en Java. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo.