Diferencia entre clase abstracta y clase concreta

Diferencia entre clase abstracta y clase concreta
Diferencia entre clase abstracta y clase concreta

Video: Diferencia entre clase abstracta y clase concreta

Video: Diferencia entre clase abstracta y clase concreta
Video: ¿Que es la NAT? Explicacion facil - Rapidin Tech 2024, Noviembre
Anonim

Clase abstracta frente a clase concreta

La mayoría de los lenguajes de programación populares modernos orientados a objetos, como Java y C, se basan en clases. Logran conceptos orientados a objetos como encapsulación, herencia y polimorfismo mediante el uso de clases. Las clases son una representación abstracta de objetos del mundo real. Las clases pueden ser concretas o abstractas dependiendo del nivel de implementación de las funcionalidades de sus métodos. Una clase concreta implementa completamente todos sus métodos. Una clase abstracta se puede considerar como una versión limitada de una clase regular (concreta), donde puede contener métodos parcialmente implementados. Por lo general, las clases concretas se denominan (solo) clases.

¿Qué es la clase concreta?

La clase predeterminada es una clase concreta. La palabra clave class se usa para definir clases (por ejemplo, en Java). Y por lo general se las denomina simplemente clases (sin el adjetivo concreto). Las clases concretas representan la representación conceptual de objetos del mundo real. Las clases tienen propiedades llamadas atributos. Los atributos se implementan como variables globales y de instancia. Los métodos en las clases representan o definen el comportamiento de estas clases. Los métodos y atributos de las clases se denominan miembros de la clase. Por lo general, la encapsulación se logra haciendo que los atributos sean privados, mientras se crean métodos públicos que se pueden usar para acceder a esos atributos. Un objeto es la instancia de una clase. La herencia permite al usuario extender clases (llamadas subclases) de otras clases (llamadas superclases). El polimorfismo permite al programador sustituir un objeto de una clase en lugar de un objeto de su superclase. Por lo general, los sustantivos que se encuentran en la definición del problema se convierten directamente en clases en el programa. Y de manera similar, los verbos se convierten en métodos. Público, privado y protegido son los modificadores de acceso típicos utilizados para las clases.

¿Qué es la clase abstracta?

Las clases abstractas se declaran utilizando la palabra clave Abstract (p. ej., en Java,). Por lo general, 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 tienen sentido 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 funciones incompletas de la clase principal y se puede agregar funcionalidad 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, se convierte en 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 nombra una clase como Abstract, está diciendo que la clase estará incompleta y tendrá elementos que las subclases heredadas deben completar. 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 el código para heredar, necesita seguir exactamente las definiciones del método (pero, por supuesto, puede tener su propia implementación).

¿Cuál es la diferencia entre la clase abstracta y la clase concreta?

Las clases abstractas generalmente tienen implementación parcial o nula. Por otro lado, las clases concretas siempre tienen implementación completa de su comportamiento. A diferencia de las clases concretas, las clases abstractas no se pueden instanciar. Por lo tanto, las clases abstractas deben extenderse para que sean útiles. Las clases abstractas pueden contener métodos abstractos, pero las clases concretas no. Cuando se amplía una clase abstracta, se heredan todos los métodos (tanto abstractos como concretos). La clase heredada puede implementar cualquiera o todos los métodos. Si no se implementan todos los métodos abstractos, esa clase también se convierte en una clase abstracta.

Recomendado: