Skip to main content

¿Qué es la clase base?

Una clase base, también llamada superclase, es un objeto informático que actúa como base para una o más clases derivadas. Cualquier lenguaje de computadora que sea capaz de heredar puede crear una clase base. Dependiendo de su tipo preciso, las clases base pueden o no ser capaces de inicializarse (asignando un valor inicial a un objeto) por sí mismas, pero siempre dan algún tipo de funcionalidad común a cualquier clase que herede de ellas. Nunca hay un límite para el número de clases derivadas, o subclases, que pueden tener las clases base, pero puede haber un límite, dependiendo del lenguaje de la computadora, para el número de clases base que puede tener una clase derivada. Se dice que los idiomas que permiten que una clase derivada tenga solo una base imponen una herencia única, mientras que los que permiten que una clase derivada tenga múltiples clases base usan herencia múltiple.

Las clases base concretas se pueden inicializar por sí mismas; es decir, se puede hacer un objeto del tipo de clase base. Si una clase Example es una base para una clase derivada Example2, se pueden hacer un objeto de tipo Example2 y un objeto de tipo Example. Un objeto de tipo Ejemplo solo se puede hacer llamando explícitamente a ese tipo de objeto; crear un objeto de tipo Example2 no crea un objeto secundario de tipo Example. En cada caso, el tipo de objeto que se crea crea una instancia de sí mismo solamente.

Las clases base abstractas, por el contrario, no se pueden inicializar por sí mismas, lo que significa que un objeto de la clase base no se puede hacer por sí mismo. Si una clase Example3 es una base abstracta para una clase derivada Example4, solo se puede hacer un objeto de tipo Example4. Aunque el tipo Example4 incluye datos del tipo Example3, intentar hacer un objeto únicamente del tipo Example3 dará como resultado un error. Esta funcionalidad puede ser útil a veces, particularmente si la clase Example3 contiene datos privados que deberían estar estrictamente regulados.

Dependiendo del idioma en el que aparece, una clase base puede tener comportamientos ligeramente diferentes y nombres marcadamente diferentes. En Java®, las clases base siempre se denominan con ese nombre, mientras que en C ++, dependiendo de su estructura, se les puede llamar clases virtuales. Las diferencias en el nombre y la funcionalidad, si bien son significativas en términos de los lenguajes de computadora que se utilizan, no implican diferencias importantes en el principio detrás de las clases. Una clase base siempre se usa para encapsular funcionalidades y datos comunes para sus clases derivadas, independientemente del idioma.