Introducción a Java: interfaces y polimorfismo

interfaz

Un tipo de datos de referencia, la especificación común de varias clases
seguirá generando .class después de la compilación
(se creó el mismo tipo de IDEA, seleccione la interfaz)

public interface 接口名{
    
    
常量
抽象方法
默认方法
静态方法
私有方法}

Uso de la interfaz: debe haber una clase de implementación, cree un objeto de clase de implementación para su uso

public class 实现类名称 implements 接口名称{
    
    
//必须覆盖接口中所有抽象方法}

Si la clase de implementación no cubre todos los métodos abstractos en la interfaz de reescritura, entonces la clase de implementación debe ser una clase abstracta

Resumen del método abstracto :
el método abstracto en la interfaz, el modificador debe ser abstracto público (se puede omitir)

El método predeterminado predeterminado :
para resolver el problema de la actualización de la interfaz (agregar nuevos métodos abstractos a la interfaz), el
método predeterminado también puede ser anulado por la clase de implementación

public default 返回值类型 方法名称(参数){
    
    };

El modificador de método predeterminado debe ser público (se puede omitir) para
llamar al método predeterminado, si no hay una clase de implementación, buscará la interfaz

Método estático estático :

public static 返回值类型 方法名称(参数){
    
    };

El modificador de método predeterminado debe ser público (se puede omitir). Los
métodos estáticos no se pueden llamar a través de objetos de la clase de implementación de la interfaz. Llame directamente a
través del nombre de la interfaz (la estática no tiene nada que ver con el objeto)

Método privado privado : Es
necesario extraer un método público para resolver el problema de la duplicación de código en los dos métodos, pero debe privatizarse.
Método privado ordinario, método privado estático (para resolver la duplicación de código del método estático)

private 返回值类型 方法名称(参数){
    
    };
private static 返回值类型 方法名称(参数){
    
    };

Los métodos privados ordinarios se llaman a través de objetos y los métodos privados estáticos se llaman directamente a través de interfaces.

Las variables miembro también se pueden definir en la interfaz, que deben modificarse con public static final , y deben inicializarse y asignarse (equivalente a una constante ) (se pueden omitir, pero la naturaleza sigue siendo la misma) (generalmente se usan todas las mayúsculas para indicar una constante)

public interface 接口名{
    
    
	public static final 数据类型 变量名 = 初始值;}

(La palabra clave final significa inmutable )
 

Una clase puede implementar múltiples interfaces al mismo tiempo

public class 实现类名 implements 接口名1,接口名2{
    
    }

Cuando hay métodos abstractos repetidos en múltiples interfaces, solo necesita anular y reescribir una vez.
Cuando hay métodos abstractos predeterminados repetidos en múltiples interfaces , debe anular uniformemente los métodos predeterminados en conflicto y anular
la interfaz predeterminada y en la clase principal. El método predeterminado se repite y se prefiere el método de la clase principal. Se prefiere la herencia en
Java a la implementación de la interfaz

public class 类名 extends 父类 implements 接口{
    
    };

Las clases y las clases son de herencia única (una clase tiene solo un padre directo).
Las clases y las interfaces se implementan de manera múltiple (una clase puede implementar múltiples interfaces). Las
interfaces y las interfaces son de herencia múltiple (una interfaz puede tener múltiples interfaces de los padres)
( Los métodos abstractos en múltiples interfaces principales se pueden repetir y los métodos predeterminados en múltiples interfaces principales no pueden entrar en conflicto -> las subinterfaces deben sobrescribirse)


Polimorfismo

La premisa del polimorfismo es la herencia (se extiende + implementa).
Un objeto tiene múltiples formas al mismo tiempo: las referencias de la clase padre apuntan a objetos de subclase
(padre izquierdo y hijo derecho, tratan el objeto como una gama más amplia de cosas)

父类 对象名 = new 子类();
接口 对象名 = new 实现类();

Cuando la clase principal y la variable miembro de la subclase tienen el mismo nombre, cuyo tipo de datos (lado izquierdo del signo igual) se usa al asignar la variable miembro. Cuando la
clase principal y el método miembro de la subclase tienen el mismo nombre, quién es nuevo al asignar el valor (lado derecho del signo igual) Quién es para usar el método de pertenencia de quién

La ventaja del polimorfismo:
no importa qué subclase de new sea, el método de llamada de la clase principal de la izquierda no cambiará

Supongo que te gusta

Origin blog.csdn.net/Rachel_IS/article/details/104459875
Recomendado
Clasificación