Академический Документы
Профессиональный Документы
Культура Документы
Introducción
Para nuestro ejemplo al final de este tema desarrollaremos un programa, que muestra las
coordenadas de un circulo, diámetro, circunferencia y área, de acuerdo a las coordenadas que le
colocamos y el resultado lo muestre en una ventana gráfica. Por el momento comenzaremos
describiendo un ejemplo muy sencillo que iremos complementando poco a poco hasta llegar al
programa del circulo. Es muy importante que realicen las actividades que se les piden en cada
sección y las dudas fuera de clase las coloquen en los espacio de twitter y el
blog(http://javacuitlahuac.blogspot.com) que se han creado para este propósito
De forma gráfica la herencia entre clases se representa de forma gráfica de la siguiente forma:
Aunque no es objeto de estudio para este curso este tipo de diagramación (UML), podemos
emplear las tres imágenes anteriores para describir la herencia.
En la primera imagen de izquierda a derecha podemos ver tres clases una principal llamada Perro
y dos clases más que heredan de esta, los atributos y propiedades de Perro, para nuestro caso
Ovejero Alemán y Caniche, son conocidas como subclases. La herencia se identificada por la
flecha dirigida de la clase que hereda las propiedades a la que proporciona estas.
En la segunda imagen, podemos ver ahora tres que heredan las características de la clase
principal Instrumento, las subclases en cuestión ahora son Guitarra, Piano y Saxofón.
La tercera imagen un poco más compleja, podemos identificar a la clase principal Persona, con los
siguientes atributos y propiedades respectivamente:
Atributos
Cabeza
Brazos
Piernas
Propiedades
Caminar
Hablar
Agarrar
Hablar
1
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
También podemos identificar dos subclases que heredan la propiedades de Persona, esta son
Hombre y Mujer. De igual forma podemos identificar que ambas clases tienen definidos sus propios
atributos_______ y _________.
Las características de una clase, se pueden heredar de clases debajo de ella en la jerarquía y no
entre subclases.
No es válida
Debido a la propiedad de la herencia las subclases, pueden utilizar las propiedades y atributos de
la clase que heredan, siempre y cuando no esté restringido su acceso, por algún tipo de
modificador como private.
Aterrizando un poco más el tema en el lenguaje de programación java, podemos ver las tres clases
de la figura anterior, de la siguiente forma.
public void caminar(){ public void crear esperma(){ public void crearOvulo (){
//Código del método } }
}
public void agarrar(){ }// Cierre de la clase Hombre }// Cierre de la clase Mujer
//Código del método
}
public void hablar(){
//Código del método
}
} // Cierre de la clase Persona
Observa la palabra extends, en las clases Hombre y Mujer, esta palabra en java nos indica lo
siguiente:
2
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
Veamos ahora la forma en ¿cómo las subclases pueden invocar las características de la clase
principal?
Ahora completemos estas tres clases, con nuestra clase principal que contiene el método main,
para poder cerrar este ejemplo.
package herencia;
package herencia;
class Persona {
protected int cabeza,brazos,piernas;
3
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
package herencia;
package herencia;
Resumiendo
Como podemos ver nuestro programa está compuesto de cuatro clases:
1. La clase principal Herencia
2. La clase Persona
3. La clase Hombre
4. La clase Mujer
Ejercicio complementario
Para reforzar esta parte del tema realice las siguientes actividades:
1. Complete la clase principal, para que invoque que la clase Mujer y pueda invocar los
métodos de la clase Persona.
2. Modifique los métodos de la clase Persona, para que identifique de que subclase se le está
invocando, esto lo puede hacer por medio de parámetros formales dentro de los métodos
correspondientes en la clase Persona.
3. Invoque a los métodos de la clase Persona por medio de los objetos creados para la clase
Hombre y Mujer, pasándole la cadena “invocando por medio de Hombre” e “invocando por
medio de Mujer” y anexándoselo al final de cadena que se mostro en el ejemplo, para que
los despliegue de la siguiente forma.
4
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
La sobresescritura es una propiedad de los lenguajes orientados a objetos, que nos permiten
reutilizar código de otras clases o de la misma clase. Los únicos elementos de una clase que se
puede sobre escribir son los métodos, este proceso en java se conoce también como overriding.
En este punto utilizaremos los términos superclase, clase principal o clase padre, para referirnos a
la clase que hereda sus propiedades a los demás.
5
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
class System
Persona
# cumpleaños: String
# nombre: String
# salario: double
+ obtenDetalles() : String
Gerente
# departamento: String
# obtenDetalles() : String
package sobreescritura;
package sobreescritura;
6
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
2. Que el método sobre escrito en la clase Gerente, tiene el mismo tipo de retorno que el de
la clase padre
3. Que el método sobreescrito en el hijo, tiene el mismo nombre que el de la superclase
4. Que el método sobreescrito en la subclase, tiene el mismo número de parámetros que el
de la clase principal.
5. Que el método sobreescrito en la subclase tiene el mismo tipo de retorno que el de la clase
principal.
Ahora modifiquemos nuestro ejemplo de la clase Persona, para que se sobreescriban los métodos
en las subclase Hombre.
package herencia;
Ejercicio complementario sobreescriba los método restantes, pero ahora en la clase Mujer, coloque
cualquier otra funcionalidad, como por ejemplo que calcule el área de un circulo.
En algunas circunstancias podrán necesitar que diversos métodos en un misma clase, que realizan
en esencia el mismo trabajo, pero con diferentes parámetros formales. Las reglas para estos
casos son:
Un método sobrecargado se utiliza para reutilizar el nombre de un método pero con diferentes
argumentos (opcionalmente un tipo diferente de retorno). Las reglas para sobrecargar un método
son las siguientes:
7
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
Lo que define qué método es el que se va a llamar son los argumentos que se envían al mismo
durante la llamada. Si se invoca a un método con un String como argumento, se ejecutará el
método que tome un String como argumento, si se manda a llamar al mismo método pero con un
float como argumento, se ejecutará el método que tome un float como argumento y así
sucesivamente. Si se invoca a un método con un argumento que no es definido en ninguna de las
versiones sobrecargadas entonces el compilador arrojará un mensaje de error.
8
Apuntes de Java herencia, constructores, superclases y subclases, sobreescritura
Hasta el momento hemos visto que los método tanto en la sobreescritura como en la sobrecarga,
se han pasado datos primitivos y cadenas de caracteres, sin embargo, también pueden pasarse
como parámetros a objetos, en este caso se dice que se pasa por referencia, porque lo que se
envía entre los métodos son las referencias a los objetos de las clases.
Como ejercicios finales haga una tabla resumen de las reglas para la sobreescritura y la
sobrecarga de métodos y otra tabla en la que se plasmen las diferencias entre la
sobrecarga y la sobreescritura de métodos.
Complete estos apuntes con lo que se vio en clase, de acuerdo a tema visto y identifique si
se trata de una sobrecarga o una sobreescritura de métodos.