Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
31 vistas12 páginas

2 Herencia

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 12

Herencia

Definiciones
● Proceso por el cual una clase adquiere las propiedades (atributos,
comportamientos) de otra clase
● Clase B
Clase A
int x
int x int y
int y La clase C
Hereda de la
clase B
int z Adicionalmente
int x se pueden crear
int y objetos tanto de
int x la clase B como
int y de la clase A
Clase C

objA
● Los mamíferos son animales especificados con más precisión, por lo tanto
heredan todos los atributos y comportamientos de los animales
● Ejemplo

tamaño
atributos inteligencia
tipo de esqueleto

clase
animales comen
comportamientos respiran
duermen
Si se quisiera describir una clase más específica de animales como los mamíferos
solo habría que indicar atributos específicos como el “tipo de dientes”, “glandulas
mamarias”
animales
tamaño
inteligencia
tipo de esqueleto
mamíferos hereda de
animales.
En java la palabra
reservada es (extends)
tipo de dientes, glandulas mamarias
mamíferos
tamaño
inteligencia
tipo de esqueleto
De la relación de herencia anterior

● animales – superclase, clase padre, clase base


● mamiferos – subclase, clase hija, clase derivada

● Ejemplos
○ perro, perico, elefante —-- subclases de animal
○ alumno, trabajador, musico —- subclases de persona
○ lista, pila, cola —- subclases de TDA (Tipo de Dato Abstracto) Lineal
○ arbol, grafo —- subclases del TDA No Lineal
En java solo se permite la herencia
simple, NO se permite la herencia
múltiple

A clase A clase C
clase A

clase B clase C
C
clase B

OK OK x
Codificacion
class B extends A{ class HerenciaSimple{
class A{
public static void main(String[] args){
int k;
int i,j; void mostrark(){
A superOb = new A();

B subOb = new B();

void mostrarij(){ sop(“k” + k);

sop(“i y j” + i + j); }//fin del metodo mostrark superOb.i =10; superOb.j =20; superOb.mostrarij();

superOb.sum(); //ERROR no se pueden invocar metodos de


void sum(){ subclases, tampoco atributos
}//fin del metodo mostrar
subOb.i=1; subOb.j=2; subOb.k=3; subOb.mostrarij();
sop(“i+j+k” + (i+j+k));
}//fin de la clase A }//fin de la clase sum
subOb.mostrark(); subOb.suma();

}//fin de la clase B }//fin de la clase


Ejemplo 2

hum

Humano

Principal main

Americano Mexicano

mex

ame
Clase Humano
class Humano{ String getNombreCompleto(){
private String nombre;
return nombre + “ “ + apellido;
private String apellido;
}
private int edad;

Humano(String nombre, String apellido, int edad){ int getEdad(){


this.nombre=nombre; return edad;
this.apellido=apellido;
}
this.edad=edad;

}//fin del constructor


}//fin de la clase Humano
Clase Mexicano
class Mexicano extends Humano{

private String curp;

Mexicano(String nombre, String apellido, int edad, String curp){

super(nombre, apellido, edad ); //invoca al constructor de la superclase Humano

this.curp=curp;

}//fin del constructor Mexicano

String Informacion(){

return “Nombre “ + super.getNombreCompleto() + “ ” + “edad “ + getEdad() + “curp ” + curp;

}//fin del metodo Informacion

} //fin de la clase Mexicano

llama al método de la superclase


Clase Americano
class Americano extends Humano{

private int nss;

Americano(String nombre, String apellido, int edad, int nss){

super(nombre, apellido, edad ); //invoca al constructor de la superclase Humano

this.nss=nss;

}//fin del constructor Americano

String Informacion(){

return “Nombre “ + super.getNombreCompleto() + “ ” + “edad “ + getEdad() + “nss ” + nss;

}//fin del metodo Informacion

} //fin de la clase Americano

llama al método de la superclase


Clase Principal
class Principal{

public static int void main(String[] args){

Mexicano mex = new Mexicano (“Juan”, “Perez Garcia”, 20, “PEGJ01….”);

sop(mex.Informacion());

Americano ame = new Americano(“John”, “Doe”, 23, 12345-6789);

String info = ame.Informacion();

sop(info);

Humano hum = new Humano(“Maria”, “Dominguez”, 24);

sop(hum.getNombreCompleto() + hum.getEdad()); // o en su defecto agregar el metodo Informacion() en la clase Humano

También podría gustarte