460
Capítulo 10 Programación orientada a objetos: polimorfi smo
• Al igual que las clases
public abstract
, las interfaces son comúnmente de tipo
public
, por lo que se declaran en
archivos por sí solas con el mismo nombre que la interfaz, y la extensión de archivo
.java
.
• Java no permite que las subclases hereden de más de una superclase, pero sí permite que una clase herede de una
superclase e implemente más de una interfaz. Para implementar más de una interfaz, utilice una lista separada por
comas de nombres de interfaz después de la palabra clave
implements
en la declaración de la clase.
• Todos los objetos de una clase que implementan varias interfaces tienen la relación
“es un” con cada tipo de interfaz
implementada.
• Una interfaz puede declarar constantes. Las constantes son implícitamente
public
,
static
y
final
.
abstract
, palabra clave
clase abstracta
clase concreta
clase iteradora
Class
, clase
constantes declaradas en una interfaz
conversión descendente
declaración de una interfaz
especialización en UML
final
, clase
final
, método
generalización en UML
getClass
, método de
Object
getName
, método de
Class
herencia de implementación
herencia de interfaz
implementar una interfaz
implements
, palabra clave
instanceof
, operador
interface
, palabra clave
método abstracto
polimorfi smo
poner en línea llamadas a métodos
realización en UML
referencia a una subclase
referencia a una superclase
superclase abstracta
vinculación dinámica
vinculación estática
vinculación postergada
Ejercicios de autoevaluación
10.1
Complete las siguientes oraciones:
a)
El
polimorfi smo ayuda a eliminar la lógica de _________________.
b) Si una clase contiene al menos un método abstracto, es una clase _________________.
c) Las clases a partir de las cuales pueden instanciarse objetos se llaman clases _________________.
d) El _________________ implica el uso de una variable de superclase para invocar métodos en objetos de
superclase y subclase, lo cual nos permite “programar en general”.
e) Los métodos que no son métodos de interfaz y que no proporcionan implementaciones deben declararse
utilizando la palabra clave _________________.
g) Al proceso de convertir una referencia almacenada en una variable de una superclase a un tipo de una sub-
clase se le conoce como _________________.
10.2
Conteste con
verdadero o falso a cada una de las siguientes proposiciones; en caso de ser falso, explique por
qué.
a) Es posible tratar a los objetos de superclase y a los objetos de subclase de manera similar.
b) Todos los métodos en una clase
abstract
deben declararse como métodos
abstract
.
c) Es peligroso tratar de invocar a un método que sólo pertenece a una subclase, a través de una variable de
subclase.
d) Si una superclase declara a un método como
abstract
, una subclase debe implementar a ese método.
e) Un objeto de una clase que implementa a una interfaz puede considerarse como un objeto de ese tipo de
interfaz.
Respuestas a los ejercicios de autoevaluación
10.1
a)
switch
. b) abstracta. c) concretas. d) polimorfi smo. e)
abstract
. f) conversión descendente.
10.2
a) Verdadero. b) Falso. Una clase abstracta puede incluir métodos con implementaciones y métodos
abstract
.
c) Falso. Es peligroso tratar de invocar un método que sólo pertenece a una subclase, con una variable de la superclase.
d) Falso. Sólo una subclase concreta debe implementar el método. e) Verdadero.
Terminología
10_MAQ_CAP_10.indd460
4/19/081:25:31AM