java: interfaz orientada a objetos (interfaz)

Como surgió

Se establecen disposiciones adicionales sobre la base de clases abstractas.
Sabemos que una clase abstracta puede tener métodos ordinarios y métodos abstractos, por lo que si una clase abstracta solo tiene métodos abstractos y constantes, se puede definir como una interfaz.

La interfaz es una clase abstracta especial.

Definir la interfaz

interface 接口名 {
    
    
	常量;
	抽象方法;
}

Las definiciones predeterminadas en la interfaz son constantes, es decir

public static final int x = 5;
int x = 5;

Los métodos definidos por defecto en la interfaz son métodos abstractos,

public abstract a ();
a ();

No hay ningún constructor en la interfaz y no se puede crear una instancia del método.

Implementar la interfaz

La clase que implementa la interfaz se llama clase de implementación, la clase de implementación debe implementar todos los métodos en la interfaz y todo debe estar decorado con public

class 类名 implements 接口名 {
    
    
	
}

característica

  • Una clase puede implementar múltiples interfaces, separadas por comas.
  • Por encima de jdk8: agregue el valor predeterminado al método en la interfaz modificada, que puede tener un cuerpo de método, y la clase de implementación no aplica este método.
interface 接口名 {
    
    
	public default f () {
    
    
		
	}
}

¿La razón de esto?
Por ejemplo, existen muchos métodos para definir una interfaz, si nuestra clase de implementación solo quiere implementar uno de los métodos, entonces tenemos que escribir otros métodos que no se utilizan, lo cual no es muy amigable. Así que agregó esto,

heredar

Una interfaz puede heredar otra interfaz, que es similar a la forma de herencia entre clases.

// 文件名: Sports.java
public interface Sports
{
    
    
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}
 
// 文件名: Football.java
public interface Football extends Sports
{
    
    
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

Herencia múltiple:
en Java, la herencia múltiple de una clase es ilegal, pero las interfaces permiten la herencia múltiple.

public interface Hockey extends Sports, Event

efecto

  • Realización indirecta de herencia múltiple (la clase java no admite herencia múltiple)
  • Definir normas y estándares a través de interfaces.
  • Formulación e implementación de estándares independientes

Sugerir programación orientada a la interfaz para mejorar la escalabilidad

Comparación de interfaz y clase abstracta

Mismo punto:

  • No se puede crear una instancia
  • Puede contener métodos abstractos

diferencia:

  • Solo hay constantes estáticas en la interfaz y variables miembro ordinarias en la clase abstracta.
  • Solo el método de interfaz abstracta, puede haber métodos no abstractos (utilizando una clase abstracta defaultmodificada)
  • La interfaz no contiene un constructor, pero una clase abstracta puede tener un constructor
  • La herencia múltiple es compatible con la interfaz, la clase abstracta no admite la herencia múltiple

Supongo que te gusta

Origin blog.csdn.net/weixin_43972437/article/details/113837425
Recomendado
Clasificación