Al implementar la interfaz, utilizamos la sintaxis de la interfaz para separar la interfaz de la definición de clase y formar un tema. interface proporciona especificaciones de interfaz para clases.
En herencia, introducimos el mecanismo de herencia para mejorar la reutilización del programa. La herencia en aquella época se basaba en clases. La interfaz de la interfaz también se puede heredar para ampliar la interfaz original.
Herencia de interfaz
La herencia de interfaz (herencia) es muy similar a la herencia de clases, que consiste en agregar nuevos prototipos de métodos de interfaz basados en la interfaz heredada. Por ejemplo, usamos Cup como interfaz original:
Copie el código de código de la siguiente manera:
interfaz taza {
void agregarAgua(int w);
void beberAgua(int w);
}
Sobre la base de heredar Cup, definimos una nueva interfaz para vasos con báscula, MetricCup
La interfaz es la siguiente:
Copie el código de código de la siguiente manera:
interfaz MetricCup extiende la copa
{
int Contenido de agua();
}
Hemos agregado un nuevo prototipo de método WaterContent(), que devuelve un número entero (cantidad de agua).
Herencia múltiple de interfaz
En la herencia de clases de Java, una clase derivada sólo puede tener una clase base. En otras palabras, una clase no puede heredar de más de una clase al mismo tiempo. En Java, una interfaz puede heredar más de una interfaz al mismo tiempo, lo que se denomina herencia múltiple.
Por ejemplo, tenemos la siguiente interfaz de reproductor:
Copie el código de código de la siguiente manera:
interfaz jugador
{
juego nulo();
}
Agregamos una nueva interfaz de MusicCup. Tiene una interfaz de Copa y una interfaz de Jugador, y agrega un prototipo del método display().
Copie el código de código de la siguiente manera:
interfaz MusicCup amplía Cup, Player
{
visualización nula();
}
(Cómo utilizar la interfaz, consulte Implementación de la interfaz)
clase abstracta
En la vida tenemos algunos conceptos muy abstractos. Estos conceptos abstractos suelen ser una colección de muchas clases, como por ejemplo:
1. Grano (puede ser maíz, trigo, arroz)
2. Gráficos (pueden ser triángulos, círculos, cuadrados)
Para otro ejemplo, dimos un ejemplo antes:
1. Seres humanos (pueden ser hombres o mujeres)
Al organizar dichas relaciones, podemos utilizar la herencia, como por ejemplo:
Según nuestro sentido común:
1. El término "objeto de clase Alimentos" es abstracto. Un objeto de este tipo debería pertenecer a una de las subclases de maíz, arroz y trigo.
2. La clase Comida tiene el método eat() (se puede comer comida). Sin embargo, tal acción es abstracta. Las formas específicas de ingerir alimentos son diferentes. Por ejemplo, es necesario pelar y comer el maíz, y moler el trigo para convertirlo en harina. Necesitamos anular el método eat() de la clase Food en cada clase.
abstracto y concreto
Java proporciona la sintaxis de clase abstracta para ilustrar la abstracción de clases y sus métodos. Por ejemplo:
Copie el código de código de la siguiente manera:
comida de clase abstracta {
comer vacío abstracto público ();
comida feliz vacía pública();
{
System.out.println("¡Bien! ¡Cómeme!");
}
}
Los métodos de una clase se pueden declarar abstractos, como eat() arriba. En este momento, no necesitamos definir específicamente el método, solo necesitamos proporcionar el prototipo del método. Esto es similar a las interfaces. Cuando heredamos esta clase, por ejemplo, en la clase Corn, debemos proporcionar una definición específica del método eat().
Otro método en la clase happyFood() no es
Cuando aparece un método abstracto en una clase, la palabra clave abstracta debe agregarse a la declaración de esta clase; de lo contrario, Java informará un error. No se puede utilizar una clase abstracta para crear objetos.
Herencia de clases abstractas.
Podemos heredar una clase abstracta como una clase. Debemos utilizar definiciones de métodos completas para cubrir los métodos abstractos en la clase abstracta; de lo contrario, la clase derivada sigue siendo una clase abstracta.
Las clases abstractas pueden tener miembros de datos en su definición. La herencia de los miembros de datos es la misma que la de una clase normal.
Resumir
herencia de interfaz, herencia múltiple
método abstracto, clase abstracta