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