Diferencia entre la clase abstracta y la interfaz

Diferencia entre la clase abstracta y la interfaz

Clase abstracta VS. Interfaz

La clase de resumen (o tipo) es un tipo de sistema de tipo nominativo declarado por el programa. Aunque el nombre implica tal, una clase abstracta puede o no incluir métodos o propiedades abstractas. La clase de distinción se refiere a diferentes construcciones de idiomas que pueden usarse para implementar tipos abstractos. Las clases abstractas se pueden caracterizar por un problema de diseño que se mantiene con la mejor programación orientada a objetos y por sus naturalezas inacabadas.

Una interfaz es un tipo abstracto que las clases deben implementar para especificar una interfaz (genéricamente hablando). Las interfaces solo pueden contener firmas de métodos y declaraciones constantes (tanto estáticas como finales), nunca las definiciones de métodos. Las interfaces simulan múltiples herencias y se utilizan para codificar similitudes compartidas entre varios tipos de clases.

Los tipos de resúmenes pueden ser creados, significados o simulados de varias maneras diferentes. Un programador puede significar tipos de resúmenes utilizando el resumen de la palabra clave explícitamente, incluyendo uno o más métodos en la definición de clase, heredar de otro tipo de resumen sin anular las características faltantes necesarias para completar la definición de clase, o enviando un método particular al objeto orientado a los objetos Programación del lenguaje conocido como este que no implementa el método directamente.

Las interfaces se pueden definir utilizando métodos abstractos. Las clases también se pueden implementar en interfaces. Si una clase implementa una interfaz y no implementa todos sus métodos, el resumen del significante debe usarse, de lo contrario, ese significante no es necesario (porque todas las interfaces son inherentemente abstractas). Las clases también pueden implementar múltiples interfaces.

Si bien las interfaces se utilizan para especificar interfaces genéricas, los tipos abstractos se pueden usar para definir y hacer cumplir el protocolo (que es un conjunto de operaciones que todos los objetos que implementan el protocolo deseado deben admitir). Los tipos abstractos no ocurren en idiomas sin subtender. Como tales subtipos se ven obligados a implementar toda la funcionalidad necesaria, asegurando la corrección de la ejecución del programa. Hay varias formas en que se pueden crear los tipos abstractos: las clases de base abstractas completas son clases que se declaran explícitamente abstractas o contienen métodos abstractos (no implementados); Los sistemas de objetos LISP comunes incluyen mezclas que se basan en el sistema de sabores; Java, por supuesto; y rasgos, que actúan como una extensión de SmallTalk.

Resumen:
1. Las clases abstractas (o tipos) declaran programas; Las interfaces son tipos abstractos que todas las clases deben implementar para especificar su interfaz.
2. Los tipos abstractos se pueden significar utilizando la palabra clave explícitamente; Las interfaces son inherentemente abstractas, por lo tanto, no es necesario que se signifique utilizando la palabra clave (a menos que una clase específica implementa una interfaz pero no implementa todos sus métodos).