18.9 Genéricos y herencia: observaciones
Los genéricos pueden utilizarse con la herencia de varias formas:
Una clase genérica puede derivarse de una clase no genérica. Por ejemplo, la clase
Object
es una super-
clase directa o indirecta de toda clase genérica.
Una clase genérica puede derivarse de otra clase genérica. Por ejemplo, la clase genérica
Stack
(en el
paquete
java.util
) es una subclase de la clase genérica
Vector
(en el paquete
java.util
). En el capí-
tulo 19, Colecciones, hablaremos sobre estas clases.
Una clase no genérica puede derivarse de una clase genérica. Por ejemplo, la clase no genérica
Proper-
ties
(en el paquete
java.util
) es una subclase de la clase genérica
Hashtable
(en el paquete
java.
util
). También veremos estas clases en el capítulo 19.
Por último, un método genérico en una subclase puede sobrescribir a un método genérico en una super-
clase, si ambos métodos tienen las mismas fi rmas.
18.10 Conclusión
En este capítulo se presentaron los genéricos. Usted aprendió a declarar métodos genéricos y clases genéricas.
Aprendió cómo se logra la compatibilidad inversa mediante tipos crudos. También aprendió a utilizar comodines
en un método genérico o en una clase genérica. En el siguiente capítulo demostraremos las interfaces, clases y
algoritmos del marco de trabajo de colecciones de Java. Como veremos, todas las colecciones que se presentarán
utilizan las capacidades genéricas que vimos en este capítulo.
18.11 Recursos en Internet y Web
www.jcp.org/aboutJava/communityprocess/review/jsr014/
Página de descarga del Proceso comunitario de Java, para el documento de la especifi cación de genéricos
Adding Gene-
rics to the Java Programming Language: Public Draft Specifi cation, Version 2.0.
www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html
Una colección de preguntas frecuentes acerca de los genéricos en Java.
java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
El tutorial
Generics in the Java Programming Language por Gilad Bracha (el líder de la especifi cación para JSR-14 y
revisor de este libro) introduce los conceptos de los genéricos, con fragmentos de código de ejemplo.
today.java.net/pub/a/today/2003/12/02/explorations.html
today.java.net/pub/a/today/2004/01/15/wildcards.html
Los artículos
Explorations: Generics, Erasure, and Bridging y Explorations: Wildcards in the Generics Specifi cation, cada
uno por William Grosso, presentan las generalidades acerca de las características de los genéricos, y cómo utilizar los
comodines.
•
•
•
•
18.11 Recursos en Internet y Web
787
Figura 18.15
| Programa de prueba de comodines. (Parte 2 de 2).
listaEnteros contiene: [1, 2, 3, 4, 5]
Total de los elementos en listaEnteros: 15
listaDouble contiene: [1.1, 3.3, 5.5]
Total de los elementos en listaDouble: 9.9
listaNumeros contiene: [1, 2.4, 3, 4.1]
Total de los elementos en listaNumeros: 10.5
54
// calcula la suma
55
for
( Number elemento : lista )
56
total += elemento.doubleValue();
57
58
return
total;
59
}
// fin del método sumar
60
}
// fin de la clase PruebaComodin
18_MAQ_CAP_18_DEITEL.indd787
4/19/081:30:52AM