Java proporciona múltiples formas de proporcionar abstracción de datos, como interfaces Java y clases de abstracto de Java. Tanto la interfaz como la clase abstracta proporcionan seguridad ocultando los detalles de implementación interna y solo mostrando/resaltando los detalles necesarios. Sin embargo, existen numerosas similitudes y distinciones entre clases abstractas e interfaces.
Esta publicación lo ayudará en los aspectos de la lista de interfaces Java y las clases abstractas:
Vamos a empezar!
¿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 proporcionan solo una declaración de método, mientras que las clases infantiles/implementadas proporcionan la definición de método.
¿Qué es una clase abstracta de Java?
Cualquier clase de Java que tenga al menos un método de resumen (solo método Declaración) se conoce como clase de resumen en Java.
Comparación basada en similitudes
A continuación se enumeran algunos aspectos importantes de las interfaces de Java y las clases abstractas:
Interfaz Java Abstract Clase vs Java
Las palabras clave "abstractas" e "interfaz" se utilizan en Java para crear/declarar las clases abstractas e interfaces 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 utilizar ningún modificador de acceso para los miembros de clases abstractas como público, protegido, etc.
La sintaxis básica de una clase abstracta y una interfaz se muestra en los fragmentos dados a continuación:
Clase abstracta
ClassName de clase abstracta públicaInterfaz
interfaz pública interfacenameLas interfaces deben tener todos los 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 ningún constructor, mientras que las clases abstractas tienen constructores definidos por el usuario o predeterminados.
Se puede lograr una herencia múltiple utilizando interfaces, mientras que las clases abstractas no admiten la herencia múltiple.
En Java, la clase abstracta puede heredar otra clase y puede implementar muchas interfaces, por otro lado, una interfaz Java solo puede extender otra interfaz.
Ejemplo
El ejemplo dado a continuación le permitirá comprender cómo funcionan las interfaces y las clases abstractas en Java:
Interfaz FirstInterfaceEn este ejemplo, creamos una interfaz "FirstInterface", una clase abstracta "Clase abstracta", y dos clases más normales de Java y realizaron las siguientes funcionalidades:
El InterfaceExample es la clase principal desde donde creamos el método principal e invocamos todos los métodos de First Interface:
Salida verificó el funcionamiento del programa Java dado anteriormente.
Conclusión
En Java, la abstracción se puede lograr utilizando clases e interfaces abstractas, y ambos no pueden ser instanciados. Sin embargo, hay múltiples distinciones entre clases abstractas e interfaces. Por ejemplo, las interfaces deben tener todos los métodos abstractos, mientras que las clases abstractas pueden tener métodos abstractos y no abstractos; Usando interfaces, se puede lograr una herencia múltiple, mientras que las clases abstractas no admiten la herencia múltiple, etc. Esta publicación explicó varios aspectos de las clases e interfaces abstractas con la ayuda de ejemplos adecuados.