Clase abstracta vs clase concreta
La mayoría de los lenguajes de programación modernos de objetos populares como Java y C# están basados en clases. Logran los conceptos orientados a objetos, como la encapsulación, la herencia y el polimorfismo, mediante el uso de clases. Las clases son una representación abstracta de los objetos del mundo real. Las clases pueden ser concretas o abstractas dependiendo del nivel de implementación de sus funcionalidades de método. Una clase concreta implementa completamente todos sus métodos. Una clase abstracta puede considerarse 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 clases (justas).
¿Qué es la clase concreta??
La clase predeterminada es una clase concreta. La palabra clave de clase se usa para definir clases (e.gramo. en Java). Y generalmente se les conoce simplemente como clases (sin el adjetivo concreto). Las clases concretas representan la representación conceptual de los 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, al tiempo que crean métodos públicos que pueden usarse para acceder a esos atributos. Un objeto es la instancia de una clase. La herencia permite al usuario extender las clases (llamadas subcases) de otras clases (llamadas Super Classes). El polimorfismo permite al programador sustituir un objeto de una clase en lugar de un objeto de su súper clase. Por lo general, los sustantivos que se encuentran en la definición de problemas 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 abstracta (E.gramo. 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 son significativas si el lenguaje de programación admite la herencia (la capacidad de crear subclases para extender 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 cuales se derivan las clases de los niños para que la clase infantil comparta las características incompletas de la clase y la funcionalidad de los padres para completarlas 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 infantil implementa todos estos métodos abstractos, se convierte en una clase concreta. Pero si no es así, la clase infantil también se convierte en una clase abstracta. Lo que esto significa es que, cuando el programador nomine a una clase como resumen, dice que la clase estará incompleta y tendrá elementos que deben completarse con las subclases heredadas. Esta es una buena manera 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, necesita seguir las definiciones de métodos exactamente (pero, por supuesto, puede tener su propia implementación).
¿Cuál es la diferencia entre clase abstracta y clase concreta??
Las clases abstractas generalmente tienen implementación parcial o ninguna. Por otro lado, las clases concretas siempre tienen una 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 pueden. Cuando se extiende una clase abstracta, todos los métodos (tanto abstractos como concretos) se heredan. 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.