Diferencia clave: Hay dos tipos principales de clases: Clase abstracta y Clase concreta. La principal diferencia entre los dos surge del nivel de implementación de las funcionalidades de sus métodos. Las clases concretas son clases regulares, donde todos los métodos están completamente implementados. Una clase abstracta es exactamente lo que sugiere su nombre. Es donde las funciones no están definidas, es decir, son abstractas.
Hay dos tipos principales de clases: Clase abstracta y Clase concreta. La principal diferencia entre los dos surge del nivel de implementación de las funcionalidades de sus métodos. Las clases concretas son clases regulares, donde todos los métodos están completamente implementados. Una clase abstracta es exactamente lo que sugiere su nombre. Es donde las funciones no están definidas, es decir, son abstractas. Es la clase base. Una vez que se define una clase abstracta, deja de ser abstracta y se convierte en una clase concreta. Una clase concreta es donde se proporcionan las implementaciones para las funciones miembro. Una clase concreta se deriva de la clase base, es decir, la clase abstracta.
Una forma más fácil de pensar sería considerar un ejemplo. Piense en los deportes, es un objeto, pero uno que no lo hace no está definido. Técnicamente, el deporte no existe. Solo existe como una categorización para otros objetos. Estos objetos, como el fútbol, el béisbol, el baloncesto, el hockey, etc. son objetos definidos que pueden clasificarse e implementarse bajo los deportes. Por lo tanto, el deporte es la clase abstracta, mientras que el fútbol, el béisbol, el baloncesto y el hockey son clases concretas.
Comparación entre clase abstracta y clase concreta:
Clase abstracta | Clase de concreto | |
Tipo | Clase base | Clase por defecto |
Métodos | Puede contener métodos parcialmente implementados. | Todos los métodos están completamente implementados. |
Funciones | Algunas o todas las funciones declaradas son puramente virtuales | No hay funciones puramente virtuales. |
Instanciación | No se puede crear una instancia | Puede ser instanciado |
Cortesía de imagen: tutorials.jenkov.com, stackoverflow.com