23.02.2017 Views

Java

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Java</strong> 167<br />

Tipos restringidos<br />

Hay veces que queremos que los tipos permitidos para un genérico<br />

pertenezcan a alguna jerarquía, con el fin de poder usar ciertos métodos<br />

propios a ella en el código genérico. Por ejemplo, si tenemos la clase que<br />

representa hábitats en un zoológico y lo hacemos genérico, esperamos<br />

que lo que pongamos allí sea un animal y no un número. Por este motivo<br />

especificamos que los tipos permitidos tienen que ser Animal o uno de<br />

sus subtipos. Lo hacemos utilizando la palabra extends.<br />

public class Habitat {<br />

…<br />

}<br />

En el código de esta clase, todo objeto que sea de tipo A será tratado<br />

como un Animal, pudiendo enviarle mensajes que entiende este tipo.<br />

Por otra parte si queremos que dicho tipo genérico extienda de<br />

varios tipos simultáneamente (implementa una o varias interfaces que<br />

nos interesan), de esta forma podemos especificarlo al conectar cada<br />

tipo que se quiere extender con el símbolo &.<br />

public class CajonDeVerduleria {<br />

…<br />

}<br />

También podemos utilizar el comodín junto con el extends. Dado<br />

que, si tenemos un método para transportar animales de un hábitat<br />

Definir un piso para los tipos<br />

Existe también una forma de restringir los tipos utilizando la palabra super. Esta permite especificar<br />

que aceptamos cualquier tipo que sea un supertipo del especificado (incluido él mismo). Esta restricción<br />

es utilizada en casos muy particulares y su concepto es difícil de entender. Recomiendo leer este tema<br />

avanzado cuando nos hayamos familiarizado con los genéricos.<br />

www.FreeLibros.me<br />

www.redusers.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!