Estas declaraciones de tipos solo pueden ser utilizadas dentro de las clases.
   El valor debe ser un instanceof de la misma clase en la
   que se utiliza la declaración de tipo.
  
   El valor debe ser un instanceof de un padre de la clase
   en la que se utiliza la declaración de tipo.
  
   static es un tipo de retorno únicamente que exige que el
   valor devuelto sea un instanceof de la misma clase en la que
   se llama el método.
  
