Sei sulla pagina 1di 25

HERENCIA

LOGRO
Al trmino de la sesin, el estudiante implementa a travs del
lenguaje Java casos de herencia, evidenciando el uso
adecuado de los pilares de la programacin orientada a
objetos.
Es el segundo concepto central en la programacin
orientada a objetos, despus de las clases
HERENCIA
HERENCIA-CONCEPTO
La herencia es aquella
propiedad de la programacin
orientada a objetos que le
permite a una clase, llamada
clase derivada, compartir la
estructura y el comportamiento
de otra clase, llamada clase base
La herencia hace posible la
reusabilidad

Los programadores siempre han
procurado evitar la escritura del mismo
cdigo dos veces, o reinventar la
rueda. La herencia es la ltima
solucin para este problema, y el ms
poderoso.
HERENCIA
HERENCIA -CONCEPTO
HERENCIA - CONCEPTO
CLASE DERIVADA
HERENCIA SIMPLE

CLASE OBJECT
CLASE OBJECT
CLASE OBJECT
boolean o.equals(Object obj)
Comprueba si el objeto dado como parmetro es igual al objeto
actual. Es equivalente al operador ==. Es til para objetos de la clase
String.
void o.finalize()
Este mtodo es llamado por el recolector de basura antes de eliminar
el objeto.
Object o.clone()
Este mtodo copia el objeto.
Class o.getClass()
Devuelve un objeto de tipo Class que identifica el tipo de objeto que
tenemos.
String o.toString()
Devuelve una representacin del objeto en formato de cadena. Es
llamado automticamente por Java cuando necesita convertir el
objeto en Cadena.
EJEMPLO

DIAGRAMA UML
ESPECIFICACIN DE HERENCIA
La herencia es alcanzada especificando de que
superclase extiende la subclase.
La clase hija, hereda todas las variables y mtodos de la
clase padre.
Si la palabra clave extends falta, entonces la clase
java.lang.Object es la superclase implcita.
Una Subclase hereda todas las variables de instancia de
su superclase

Clase Padre
Clase Hija
Inicializacin por Defecto
Que sucede cuando un objeto de la subclase es creada?
Hija H1= new Hija()
Sino se define ningn constructor
-Primero el constructor por defecto, sin argumentos se llama en la
superclase
-Entonces el constructor por defecto, sin argumentos se llama en la
subclase
La Referencia Super
Se refiere a la clase base de nivel superior
Es til para llamar constructores de la clase base
Debe ser la primera lnea en el constructor derivado de la clase
Puede ser utilizado para llamar a cualquier mtodo de la clase base.
USO DE LOS CONSTRUCTORES DE LA
SUPERCLASE
Se usa super() para llamar al constructor de la superclase.
GENERANDO EL CONSTRUCTOR SUPER
USO DE LOS CONSTRUCTORES DE LA SUPERCLASE
public class Persona {
private String nombre;
private int edad;

public Persona() {
}
public Persona( String nombre, int edad) {
setNombre(nombre);
setEdad(edad);
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
}
public class Alumno extends Persona {
private int curso;
private String nivelAcademico;
public Alumno(String nombre, int edad, int curso, String
nivelAcademico) {
super(nombre, edad);
setCurso(curso);
setNivelAcademico(nivelAcademico);
}
public int getCurso() {
return curso;
}
public void setCurso(int curso) {
this.curso = curso;
}
public String getNivelAcademico() {
return nivelAcademico;
}
public void setNivelAcademico(String nivelAcademico) {
this.nivelAcademico = nivelAcademico;
}
}
USO DE LOS CONSTRUCTORES DE LA SUPERCLASE
public class Main {
public Main() {
}
public static void main(String[] args) {

Alumno a = new Alumno("Pepe Castillo", 18, 2, "bueno");
System.out.println(a.getNombre());
System.out.println(a.getEdad());
System.out.println(a.getCurso());
System.out.println(a.getNivelAcademico());

}

}
EL MTODO TOSTRING()
Recuerde que la clase java lang.object es la clase raz para todas
las clases de java.
Los mtodos en la clase Object son heredados por sus
subclases.
El mtodo toString() es el mas comnmente sobreescrito para
lograr un comportamiento polimrfico.
EL MTODO TOSTRING()
public class Persona {
private String nombre;
private int edad;

public Persona() {
}

:
:
:
public String toString()
{
String retValue;

retValue = nombre+ " "+edad;
return retValue;
}
}
public class Alumno extends Persona {
private int curso;
private String nivelAcademico;
public Alumno(String nombre, int edad, int curso, String nivelAcademico)
{
super(nombre, edad);
setCurso(curso);
setNivelAcademico(nivelAcademico);
}
:
:
:
:
public String toString() {
String retValue;
retValue = super.toString()+curso+" "+nivelAcademico;
return retValue;
}
}
Utilice la opcin Tools/Override methods para generar los metodos toString y equals
de la clase u Control+I , o Insert Code (Netbeans 6.0.1)
EL MTODO TOSTRING()
public class Main {
public Main() {
}
public static void main(String[] args) {
Alumno a = new Alumno("Pepe Castillo", 18, 2, "bueno");
//System.out.println(a.getNombre());
//System.out.println(a.getEdad());
//System.out.println(a.getCurso());
//System.out.println(a.getNivelAcademico());
System.out.println(a.toString());
}
}
TRATANTO OBJETOS DE LA SUBCLASE COMO OBJETOS DE LA
SUPERCLASE
En java se puede asignar una instancia de un objeto de la subclase a una referencia
definida para la superclase.
El compilador trata al objeto, va su referencia (que es en trminos de la definicin de
la superclase.
public static void main(String[] args)
{
Persona p = new Persona();
Alumno a = new Alumno("Pepe Castillo", 18, 2, "bueno");
p=a; // Referencia padre seala al objeto hijo
// acceso al objeto hijo mediante la ref padre.
// a=p; error!!!!!!
p.setEdad(24);
/* no es posible acceder a un miembro de la clase hija usando
una ref a la clase padre */
// p.setCurso(88); ERROR
}

Potrebbero piacerti anche