Traducción, artículo original aquí




      Por muy interesante que la descripción de los humanos pueda ser, no es muy específica. Eunice le prometió a su editor una nueva historia para el viernes, así que decide ponerse a trabajar. Buscando en el el folder "Humanos", se encuentra con el primer capítulo, llamado "Villanos".




      Los villanos están basados en la idea de los humanos. Son idénticos, excepto que tienen algunas cualidades adicionales, llámense un bigote, un sombrero, cierto "aspecto", un nivel de ebriedad y una cierta cantidad de demiselas secuestradas. Tu villano estandar va a verse "malo", va a comenzar el día sobrio y sin damiselas secuestradas.

      Nada nuevo aquí, solo que hemos profundizado en los folders de Eunice (clases) para ver una subsección (subclase). Ésta subsección, villanos, extiende la idea de humanos.




      Villanos extiende la idea de Humanos.
      Un Villano
        tiene bigote.
        tiene sombrero.
        tiene aspecto.
        tiene algún grado de ebriedad.
        tiene cierto número de damiselas secuestradas.


      Cada Villano,
      Va a verse malo.
      Va a comenzar sobrio.
      Va a comenzar el día sin damiselas secuestradas.



      public class Villanos extends Humanos {
      String colorBigote;
      String colorSombrero;
      String aspecto;
      int ebriedad;
      int numeroDeDamiselas;
      Humanos damisela;

      public Villanos() {
      aspecto = "Malo";
      ebriedad = 0;
      numeroDeDamiselas = 0;
      }
      }

      Hemos introducido aquí la idea de subclases. "Humanos" es una clase, y "Villanos" una subclase de ésta.

      Pueden preguntarse por qué Eunice declaró "Humanos damisela" en ésta clase. Míralo de ésta manera. Si el villano va a secuestrar una damisela, el editor de Eunice debe saber que es una damisela. Al declarar "Humanos damisela", su editor sabe que damisela es un tipo de humano.