Tecnología

Inicio

La diferencia entre la interfaz y la clase abstracta

En el mundo de la codificación de aplicaciones informáticas, es una buena cosa que ser un programador perezoso. En concreto, se ahorra tiempo de usar herramientas que otros programadores creados para un propósito específico en lugar de ir fuera de reinventar la rueda. En el lenguaje de programación Java, dos de las formas que estas herramientas de programadores hacen para sí mismos u otros programadores pueden tomar son interfaces y clases abstractas.

Modelos de clase

Ambas interfaces y clases abstractas sirven como una especie de plantilla para una clase particular. Los programadores crean estas clases con el fin de especificar ciertos comportamientos genéricos para la clase, y permitir que el programador individual que termina con la clase para especificar el comportamiento de la clase para la aplicación particular del programador. Mientras que ambos actúan como modelos generales, tienen diferentes protocolos de declaraciones e imponen diferentes requisitos sobre el programador final.

Declaraciones de clase e Implementaciones

Los programadores especificar si una clase es una interfaz o una clase abstracta con otras palabras clave en la declaración de clase. Este será un "interfaz" seguido del nombre de la interfaz, o "clase abstracta", seguido del nombre de la clase '. Los programadores que utilicen cualquiera de la clase abstracta o interfaz no utilizan la clase directamente, sino que crean una subclase del tipo de clase en particular que va a utilizar. Para utilizar una interfaz, un programador añadiría "interfaz implementa", donde "interfaz" es el nombre de la interfaz en particular. Para utilizar una clase abstracta, un programador añadiría "se extiende abstractClass", donde "abstractClass" es el nombre de la clase abstracta.

Las implementaciones del método

Subclases sustituyan métodos en su clase padre (en este caso la interfaz o clase abstracta). Cuando un programador declara un método con el mismo nombre que un método de la clase padre, entonces el programa utilizará el código para el método que proporciona al usuario en lugar del código en el método de los padres. En las clases abstractas, algunos métodos serán declarados como "abstracto". Estos métodos de tratar con los detalles de cómo se usará una clase, y el programador final tiene que pasar por encima de los métodos que se declaran como abstracto. En las interfaces, el usuario final tiene que pasar por encima de todos los métodos de la interfaz.

El uso situacional

Estas diferencias funcionales prestan a usos específicos. Usando una interfaz asegura que una clase particular se reunirá con todos los requisitos para una estructura de datos en particular. Por ejemplo, un programador que hizo su propia biblioteca de funciones de conexión de red pueden usar los programadores y la clase de interfaz que diseñó para los datos que el programador final quiere enviar usando esas funciones. La interfaz se asegurará de que toda transmisión de salida tendrá todo lo que necesitan las bibliotecas con el fin de enviar correctamente los datos. Por otra parte, ese mismo programador podría hacer una clase abstracta que contenía métodos que detallan los aspectos prácticos de envío de los datos, pero requiere que el programador fin a pasar por encima de ciertos métodos que se ocupan de que los datos serían enviados o lo que serían enviados.