Sunteți pe pagina 1din 5

Miguel Angel Zapata Fraile

Cdigo : 1320013231
Chapter 11 Inheritance and Polymorphism (HERENCIA Y
POLIMORFISMO)

11.1 Cul es la impresin de la ejecucin de la clase C en (a)? Qu problema


se presenta en la compilacin del programa en (b)?

Respuesta :

a) La impresin es As no-arg constructor is invoked.


b) El constructor predeterminado de B intenta invocar el valor por defecto
del constructor de la clase A, pero no est definido el constructor por
defecto de la clase A.

11.2 Verdadero o falso?


a) Una subclase es un subconjunto de una superclase. (Falso)
b) Cuando se invoca un constructor de una subclase, el constructor de la
superclase sin argumentos siempre se invoca. (Falso)
c) Se puede reemplazar un mtodo privado definido en una superclase. (Falso)
d) Se puede reemplazar un mtodo esttico definido en una superclase.
(Falso)

11.3 Identificar los problemas en las siguientes clases:

Respuesta : Las siguientes lneas estn mal;

{
radius = radius; // Se debe usar this.radius = radius
}

class B extends Circle (sobra el extends)

Circle(radius); // Se debe usar super (radius)


length = length; // Se debe usar this.length = length
}

public double getArea()


{
return getArea()*length; // Se debe usar super.getArea()
}

11.4 Cmo invocar explcitamente el constructor de una superclase desde


una subclase?
Respuesta: Usando super(), o super(Argumentos), Esta declaracin debe ser la
primera en el constructor de la subclase.
11.5 Cmo se puede invocar un mtodo de la superclase reemplazado desde
una subclase?
Respuesta: Usando super.method() o super.method(args).
11.6 Explicar la diferencia entre sobrecargar mtodos y reescribir mtodos.
Respuesta: Sobrecarga de mtodo define los mtodos del mismo nombre en
una clase. Reemplazar el mtodo modifica los mtodos que se definen en las
superclases.
11.7 Si un mtodo en una subclase tiene la misma firma que un mtodo de su
superclase con el mismo tipo de retorno, es el mtodo reemplazado o
sobrecargado ?
Respuesta: El mtodo es reemplazado.
11.8 Si un mtodo en una subclase tiene la misma firma que un mtodo de su
superclase con un tipo diferente de retorno, esto ser un problema?
Respuesta: Si habr un error de sintaxis.
11.9 Si un mtodo en una subclase tiene el mismo nombre que un mtodo de
su superclase con diferentes tipos de parmetros, es el mtodo reemplazado o
sobrecargado?
Respuesta: Se sobrecarga el mtodo.
11.11 Mostrar la salida del siguiente programa:

Es el constructor sin argumentos del objeto invocado cuando se llama a new


A(3)?
Respuesta: Bs constructor is invoked
As constructor is invoked
El constructor por defecto del objeto se invoca, cuando new A (3) se invoca.
Constructor del objeto se invoca antes de que se ejecuten las declaraciones en
el constructor de B.
11.15 Al reescribir el mtodo equals, un error comn es escribir su firma en la
subclase. Por ejemplo, el mtodo equals est incorrectamente escrito como
equals(Circle circle), como se muestra en (a) en el cdigo de abajo; por el
contrario, debe ser equals (Object circle), como se muestra en (b). Mostrar la
salida de la clase en curso Prueba con la clase del crculo en (a) y en (b),
respectivamente.

Respuesta: La salida es falsa si se utiliza la clase Circle en (A). La clase Circle


tiene dos mtodos sobrecargados: equals(Circle circle) definido en la clase

Circle y equals(Object circle) definido en la clase de objeto, heredada por la


clase Circle. En tiempo de compilacin, circle1.equals(circle2) se empareja a
equals(Circle circle), porque equals(Circle circle) es ms especfico que
equals(Object circle).

11.22 Cmo puede evitar que una clase se extienda? Cmo puede evitar que
un mtodo pueda ser reescrito?
Respuesta: Utilizando la palabra clave final.
11.24 Indicar verdadero o falso en las siguientes afirmaciones:
1) Un dato o mtodo protegido puede accederse por cualquier clase en el
mismo paquete (Verdadero).
2) Un dato o mtodo protegido puede accederse por cualquier clase en
diferente paquete (Falso).
3) Un dato o mtodo protegido puede accederse por sus subclases en cualquier
paquete (Verdadero).
4) Una clase final puede tener instancias (Verdadero).
5) Puede extender una clase final (Falso).
6) Un mtodo final puede ser reescrito (Falso).
7) Siempre se puede castear con xito una instancia de una subclase de una
superclase (Verdadero).
8) Siempre se puede castear con xito una instancia de una superclase de una
subclase (Falso).

S-ar putea să vă placă și