POO Lección 2: Jerarquías de clases

Jerarquía de Clases

Todo esta bien cuando hablamos de una sola clase. Pero naturalmente, un programa real contiene más de una clase. Algunas de estas clases podrían ser organizadas dentro de una jerarquía. Vamos a ver que significa esto…

Digamos que mi vecino tiene un perro llamado Firulais. Podemos pensar, basicamente que los gatos y perros tienen mucho en común:

  • Nombre
  • Sexo
  • Edad
  • Color

Son atributos que ambos tienen.

Además los perros pueden:

  • Respirar
  • Dormir
  • Comer
  • Correr

al igual que los gatos.

Entonces esto parece dar a entender que podemos definir una clase base Animal que va a contener los atributos y comportamientos que ambos comparten.

Una clase padre, como la que hemos definido anteriormente (Animal), es llamada superclase. Sus hijos son llamados subclases. Las subsclases heredan tanto el estado como el comportamiento de su/s padre/s, definiendo solamente atributos o comportamientos que difieren de su/s padre/s.

Por ejemplo:

La clase Cat va a tener un método meow, y la clase Dog un método bark.

Asumiendo que tenemos un requerimiento de negocio relacionado, podemos ir a un nivel más abstracto y extraer una clase más general para todos los seres vivos Organisms que se convierte en una superclase de Animals y Plants. Esta piramide de clases la denominamos jerarquía. En esta jerarquía, la clase Cat hereda todo de ambos padres, es decir, de Animal y Organism.

Las subclases siempre pueden sobreescribir el comportamiento de los métodos que heredan de sus clases padres. Una subclase puede remplazar el comportamieto por defecto o solo mejorarlo con alguna caracteristica extra.

Written on March 3, 2020