
Java ofrece varias formas de proporcionar abstracción de datos, como: B. Interfaces Java y clases Java abstractas. Tanto la interfaz como la clase abstracta brindan seguridad al ocultar los detalles de implementación internos y solo muestran/resaltan los detalles necesarios. Sin embargo, existen numerosas similitudes y diferencias entre las clases abstractas y las interfaces.
Esta publicación lo ayudará con los aspectos de las interfaces de Java y las clases abstractas que se enumeran a continuación:
- ¿Qué es una interfaz Java?
- ¿Qué es una clase Java abstracta?
- Comparación basada en similitudes.
- Clase abstracta de Java frente a interfaz de Java.
¡Entonces empecemos!
¿Qué es una interfaz Java?
Es una plantilla para una clase que contiene algunos métodos abstractos y variables estáticas/finales. En Java, las interfaces solo proporcionan declaraciones de métodos, mientras que las clases sub/implementadas proporcionan la definición del método.
¿Qué es una clase Java abstracta?
Cualquier clase de Java que tenga al menos un método abstracto (solo declaración de método) se denomina clase abstracta en Java.
Comparación basada en similitudes
Algunos aspectos importantes de las interfaces de Java y las clases abstractas se enumeran a continuación:
- En Java no podemos crear el objeto/instancia desde interfaces y clases abstractas.
- Ambos proporcionan al usuario solo los detalles necesarios.
- Ambos ofrecen abstracción.
- Ambos pueden tener métodos/funciones abstractos.
- Ambos ocultan la información/los detalles de implementación de los usuarios.
Clase abstracta de Java frente a interfaz de Java
Las palabras clave «abstracto» e «interfaz» se utilizan en Java para crear/declarar las clases e interfaces abstractas, respectivamente.
En las interfaces, todos los miembros se consideran públicos de forma predeterminada, por lo que no es necesario especificar el modificador de acceso para los miembros de las interfaces. Mientras que en las clases abstractas no existe tal restricción y, por lo tanto, se puede usar cualquier modificador de acceso en los miembros de clases abstractas como public, protected, etc.
La sintaxis básica de una clase abstracta y una interfaz se muestra en los fragmentos que se dan a continuación:
Clase abstracta
en público resumen Clase nombre de la clase{
en público resumen Vacío nombre del método();
}
interfaz
en público interfaz nombre de la interfaz{
Vacío nombre del método();
}
Todas las interfaces deben tener métodos abstractos, mientras que las clases abstractas pueden tener métodos abstractos y no abstractos.
La interfaz solo puede tener miembros estáticos, mientras que las clases abstractas pueden tener miembros estáticos y no estáticos.
Las interfaces solo tienen miembros «finales» (inmutables), mientras que las clases abstractas pueden tener miembros finales y no finales.
Las interfaces no tienen constructor, mientras que las clases abstractas tienen constructores personalizados o predeterminados.
La herencia múltiple se puede lograr usando interfaces, mientras que las clases abstractas no admiten la herencia múltiple.
En Java, la clase abstracta puede heredar otra clase e implementar muchas interfaces, por otro lado, una interfaz Java solo puede extender otra interfaz.
ejemplo
El siguiente ejemplo le muestra cómo funcionan las interfaces y las clases abstractas en Java:
Vacío métodouno();
Vacío método dos();
Vacío método tres();
}
resumen Clase Clase abstracta implementado Primera interfaz {
en público Vacío método tres() {
sistema.fuera de.imprimir(«Clase abstracta que implementa el método Tres»);
}
}
Clase clase normal expandido Clase abstracta {
en público Vacío métodouno() {
sistema.fuera de.imprimir(«implementar método Uno»);
}
en público Vacío método dos() {
sistema.fuera de.imprimir(«Implementar el método dos»);
}
en público Vacío método tres() {
sistema.fuera de.imprimir(«Implementación del método Tres»);
}
}
en público Clase Ejemplo de interfaz {
en público estático Vacío principalmente(línea[] argumentos) {
Primera interfaz obj = Nuevo clase tres();
objetométodouno();
objetométodo dos();
objetométodo tres();
}
}
En este ejemplo hemos creado una interfaz «Primera interfaz»una clase abstracta «Clase abstracta»y otras dos clases normales de Java y realizó las siguientes funciones:
- Ese Primera interfaz contiene tres métodos abstractos.
- Ese Clase abstracta implementado Primera interfaz y sobrescribe el Método tres ().
- Ese clase normal expande el Clase abstracta y sobrescribe el Método Uno () y MétodoDos() desde Primera interfaz.
Ese Ejemplo de interfaz es la clase principal a partir de la cual creamos el método principal y llamamos a todos los métodos de Primera interfaz:
El resultado verificó el funcionamiento del programa Java dado anteriormente.
Conclusión
En Java, la abstracción se puede lograr con clases e interfaces abstractas, y no se pueden instanciar ambas. Sin embargo, hay varias distinciones entre clases abstractas e interfaces. Por ejemplo, todas las interfaces deben tener métodos abstractos, mientras que las clases abstractas pueden tener métodos abstractos y no abstractos; la herencia múltiple se puede lograr con interfaces, mientras que las clases abstractas no admiten la herencia múltiple, etc. Este artículo explica varios aspectos de las clases e interfaces abstractas utilizando ejemplos adecuados.