Diferencia Entre Clase Abstracta E Interfaz

Diferencia Entre Clase Abstracta E Interfaz
Diferencia Entre Clase Abstracta E Interfaz

Vídeo: Diferencia Entre Clase Abstracta E Interfaz

Vídeo: Diferencia Entre Clase Abstracta E Interfaz
Vídeo: Diferencia entre clases abstractas e interfaces en Java 2024, Noviembre
Anonim

Clase abstracta vs interfaz

La clase abstracta y la interfaz son dos construcciones orientadas a objetos que se encuentran en muchos lenguajes de programación orientados a objetos como Java. La clase abstracta se puede considerar como una versión abstracta de una clase regular (concreta), mientras que una interfaz se puede considerar como un medio para implementar un contrato. La clase abstracta es una clase que no se puede inicializar pero que se puede ampliar. La interfaz es un tipo que deben implementar otras clases. En Java, las clases abstractas se declaran utilizando la palabra clave abstracta, mientras que la palabra clave interfaz se utiliza para definir una interfaz.

¿Que es una clase abstracta?

Normalmente, las clases abstractas, también conocidas como clases base abstractas (ABC), no se pueden instanciar (no se puede crear una instancia de esa clase). Por lo tanto, las clases abstractas solo son significativas si el lenguaje de programación admite la herencia (capacidad de crear subclases a partir de la extensión de una clase). Las clases abstractas generalmente representan un concepto o entidad abstracta con implementación parcial o nula. Por lo tanto, las clases abstractas actúan como clases principales de las que se derivan las clases secundarias, de modo que la clase secundaria compartirá las características incompletas de la clase principal y se podrán agregar funciones para completarlas.

Las clases abstractas pueden contener métodos abstractos. Las subclases que extienden una clase abstracta pueden implementar estos métodos abstractos (heredados). Si la clase secundaria implementa todos estos métodos abstractos, es una clase concreta. Pero si no es así, la clase secundaria también se convierte en una clase abstracta. Lo que todo esto significa es que, cuando el programador nomina una clase como Resumen, está diciendo que la clase estará incompleta y tendrá elementos que deben ser completados por las subclases heredadas. Esta es una buena forma de crear un contrato entre dos programadores, lo que simplifica las tareas en el desarrollo de software. El programador, que escribe código para heredar, debe seguir exactamente las definiciones del método (pero, por supuesto, puede tener su propia implementación).

¿Qué es una interfaz?

Una interfaz es un tipo abstracto que se utiliza para especificar un contrato que deben implementar las clases, que implementan esa interfaz. La palabra clave interfaz se usa para definir una interfaz y la palabra clave Implements se usa para implementar una interfaz por una clase (en lenguaje de programación Java). Por lo general, una interfaz solo contendrá firmas de métodos y declaraciones constantes. Cualquier interfaz que implemente una interfaz en particular debe implementar todos los métodos definidos en la interfaz, o debe declararse como una clase abstracta. En Java, el tipo de referencia de objeto se puede definir como un tipo de interfaz. Pero ese objeto debe ser nulo o debe contener un objeto de una clase, que implementa esa interfaz en particular. Usando la palabra clave Implements en Java, puede implementar múltiples interfaces en una sola clase.

¿Cuál es la diferencia entre clase abstracta e interfaz?

Las clases abstractas generalmente representan un concepto abstracto o una entidad con implementación parcial o nula. Por otro lado, una interfaz es un tipo abstracto que se utiliza para especificar un contrato que deben implementar las clases. Las clases abstractas deben heredarse (o ampliarse), mientras que las interfaces deben implementarse. Las clases abstractas pueden contener métodos abstractos, mientras que una interfaz solo debe contener métodos abstractos. Las clases abstractas pueden contener cualquier variable, pero las interfaces solo pueden definir constantes. Una clase no puede heredar de más de una clase abstracta, pero puede implementar múltiples interfaces. Una interfaz no puede implementar otra interfaz. Sin embargo, una interfaz puede ampliar una clase.

Recomendado: