- Detalles
¿Qué es una interfaz?
La interfaz es un modelo que se puede utilizar para implementar una clase. No hay métodos concretos en la interfaz (métodos que tienen código). Todos los modos de interfaz son métodos abstractos.
La interfaz no se puede agregar instantáneamente. Sin embargo, las clases que implementan interfaces se pueden agregar instantáneamente. Las interfaces nunca son variables de conveniencia, pero pueden contener variables finales estáticas públicas (es decir, variables de clase fija)
¿Que es una clase abstracta?
Una clase en la que se declara la palabra clave abstracta se denomina clase abstracta. Las clases abstractas deben tener al menos un modo abstracto. , es decir, métodos sin cuerpo. Puede tener métodos multicomponente.
Las clases abstractas le permiten crear planos para clases concretas. Pero la clase de herencia debería aplicar el método abstracto.
Las clases abstractas no se pueden tomar instantáneamente.
Razones importantes para utilizar interfaces
- Las interfaces se utilizan para lograr la abstracción.
- Diseñado para admitir resolución de modo dinámico en tiempo de ejecución
- Te ayuda a lograr un apareamiento suelto.
- Le permite separar la definición de un método de la jerarquía de herencia.
Razones importantes para usar la clase abstracta
- Las clases abstractas ofrecen una funcionalidad preestablecida para las subclases.
- Proporciona una plantilla para clases futuras específicas.
- Le ayuda a definir una interfaz común para sus subclases.
- Permite un código de clase abstracto reutilizable.
Interfaz vs. Clase abstracta
Una clase abstracta le permite realizar funcionalidades que pueden ser aplicadas o anuladas por subclases, pero una interfaz solo le permite especificar la funcionalidad pero no aplicarla. Una clase solo puede extender una clase abstracta y se puede implementar una clase de interfaz múltiple.
Parámetros | Interfaz | Clase abstracta |
---|---|---|
Velocidad | Lentamente | Rápido |
Múltiples legados | Aplicar algunas interfaces | Una clase abstracta |
Estructura | Métodos abstractos | Métodos abstractos y concretos |
Cuándo usar | Mejora futura | Evita la independencia |
Legado / Implementación | La clase puede implementar múltiples interfaces | La clase solo puede heredar una clase abstracta |
Implementación predeterminada | Agregar cosas nuevas a la interfaz es una pesadilla para encontrar a todos los ejecutivos e implementar las cosas recién definidas. | Para Abstract Class, puede aprovechar la aplicación predeterminada. |
Modificadores de acceso | No hay modificadores de acceso en la interfaz. Se asume que todo lo definido dentro de la interfaz es un moderador público. | La clase abstracta puede tener un modificador de acceso. |
Cuándo usar | La interfaz se utiliza mejor cuando varias implementaciones diferentes solo tienen la firma del método. Jerarquía polimórfica de tipos de valor. | Debe usarse cuando las implementaciones comunes tienen diferentes implementaciones similares. |
Campos de información | la interfaz no puede contener campos de datos. | la clase puede tener campos de datos. |
Valor predeterminado heredado múltiple | Una clase puede implementar múltiples interfaces. | Una clase solo obtiene una clase abstracta. |
Implementación | Tiene una interfaz abstracta por lo que no puede proporcionar ningún código. | Una clase abstracta puede dar un código completo predeterminado que debe anularse. |
Usar modificadores de acceso | No puede usar modificadores de acceso para el modo, propiedades, etc. | Puede utilizar una clase abstracta que contenga modificadores de acceso. |
Usar | Las interfaces ayudan a definir las capacidades periféricas de la clase. | Una clase abstracta define la identidad de clase. |
Áreas definidas | No se pueden definir campos | Una clase abstracta te permite definir campos y constantes. |
Herencia | Puede heredar una interfaz múltiple pero no puede heredar una clase. | Una clase abstracta puede heredar múltiples clases e interfaces. |
Constructor o destructores | Los constructores o destructores de interfaces no pueden confirmarlo. | Una clase abstracta puede declarar constructores y destructores. |
Limitación de extensiones | Puede expandir cualquier número de interfaces. | Solo puede extender una clase o una clase abstracta a la vez. |
Palabra clave abstracta | En una palabra clave de interfaz abstracta, es opcional declarar un método como abstracto. | En una clase abstracta, la palabra clave abstracta es obligatoria para declarar un método como abstracto. |
Tipo de clase | La interfaz solo puede tener modos abstractos públicos. | La clase abstracta tiene métodos abstractos de protección y público. |
Código de muestra para la interfaz Java y la clase abstracta
El siguiente es un código de muestra para crear una interfaz y una clase abstractas en Java
Sintaxis de la interfaz
interface name{ //methods }
Ejemplo de interfaz Java:
interface Pet { public void test(); } class Dog implements Pet { public void test() { System.out.println("Interface Method Implemented"); } public static void main(String args[]) { Pet p = new Dog(); p.test(); } }
Sintaxis de clase abstracta
abstract class name{ // code }
Ejemplo de resumen de clase:
abstract class Shape { int b = 20; abstract public void calculateArea(); } public class Rectangle extends Shape { public static void main(String args[]) { Rectangle obj = new Rectangle(); obj.b = 200; obj.calculateArea(); } public void calculateArea() { System.out.println("Area is " + (obj.b * obj.b)); } }