Está en la página 1de 3

Algoritmos y patrones de almacenamiento lineales

orientados a objetos
Práctca No. 2

Herencia y Polimorfsmo

Objetvos

• Reafrmar los conceptos de herencia, así como las referencias this y super

• Utlizar la sobrecarga de métodos y reforzar la sobrecarga de constructores

Desarrollo

Parte I

Proyecto “Herencia1”

1. En el ambiente de desarrollo eclipse crear la siguiente jeraquia de clases

Clase Tipo Atributos Comportamientos

Humano Superclase Nombre GetNombreCompleto()

Apellido GetEdad()

Edad

Mexicano Subclase que hereda de Humano Curp GetInformacion()

Americano Subclase que hereda de Humano SSN GetInformacion()

Principal Hace instancias de Mexicano y Americano

2. Considerar que todos los atributos son privados y de tpo String , a excepción del atributo
“Edad” que es entero. En cuanto a los comportamientos estos no reciben nada como
argumento, pero devuelven una cadena con la información relacionada. Tomar en cuenta
que los métodos GetInformacion() hacen uso de los métodos GetNombreCompleto() y
GetEdad() (ya que los heredan).

3. Considerar un constructor en la clase Humano, y otros dos en las clases Mexicano y


Americano. En estos dos últmos (constructor Mexicano y Americano) es necesario un
llamado explícito al constructor de la superclase mediante la palabra “super”. Verifcar si
es necesario también el uso del “this”.

4. En el método principal, hacer dos instancias de la clase Mexicano y Americano (con sus
respectvas inicializaciones), y posteriormente llamar al método GetInformacion().

5. Correr el programa y observar la salida en la consola de mensajes.

6. Hacer una nueva instancia pero ahora de la clase Humano. Esta instancia debe considerar
la inicialización (de los atributos) para posteriormente hacer un desplegado de la
información. Correr nuevamente el programa y observar la salida.

7. En relación al punto 3, verifcar si en el constructor Mexicano o Americano puede ir el


llamado super(....,....,....) después de la inicialización del atributo curp o ssn.

Parte II

Proyecto “Herencia2”

1. Crear un nuevo proyecto, el cual además de contener la clase Principal, contene a la clase
A, B y C.

2. Construir una jerarquía de clases en donde la clase A es la superclase, la clase B hereda de


A, y fnalmente la clase C hereda de B.

3. Estas últmas 3 clases lo único que tenen es un contructor genérico o por defecto (sin
parámetros). Dentro de cada constructor lo único que hay es un mensaje que indica que
es el constructor X. Por ejemplo en la clase A, el mensaje del constructor es:

System.out.println(“Dentro del constructor A”);

4. En el método main de la clase Principal lo único que hay es una instancia de la clase C.

5. Ejecutar el programa y responder a las siguientes preguntas:

• Se ejecutan los 3 constructores o sólo el de la clase C?

• Si es que se ejecutan los 3 constructores, en que orden lo hacen?


• Tratar de hacer una analogía con los contructores utlizados en el Proyecto
“Herencia1”.

Parte III

Proyecto “Sobrecarga de métodos”

1. Crear dos clases, una llamada OverloadDemo y otra que es la Principal. Dentro de la clase
OverloadDemo hacer una sobrecarga de métodos, para lo anterior crear los siguientes 3
métodos:

• void test()

• void test(int a, int b)

• void test(double a)

2. Escribir dentro de cada método una impresión del o los atributos relacionados.

3. En el método main de la clase Principal hacer una instancia de la clase OverloadDemo.


Posteriormente hacer el código que llame a cada uno de los tres métodos sobrecargados.

4. Finalmente dentro del método main declarar e inicializar una variable de tpo entero, por
ejemplo int i=17; y pasarla como argumento a un llamado del método test. Contestar las
siguientes preguntas:

• Existen un error en el llamado al no haber un método sobrecargado que reciba un


entero?

• Si es que no hay error, que método sobrecargado se ejecuta?

• Si se invierten los tpos de datos que pasa?

▪ void test(double a) ----> void test(int a)

▪ int i ------> double i

• De lo anterior, que diferencias hay (o no hay) con la sobrecarga de constructores?

También podría gustarte