Está en la página 1de 12

HERENCIA Y

POLIMORFISMO
Herencia: Definicin
En la programacin orientada al objeto se
permite definir una clase B como
extensin de una clase A.
B se denomina subclase de A y A se
denomina superclase de B.
B es la clase derivada y A es la clase
base.
Una subclase tpicamente aumenta o
redefine los atributos de la clase base
existente y el comportamiento de la
superclase.
Herencia: Notacin
Herencia
Una clase hija hereda todos los atributos
y mtodos con visibilidad pblica o
protegida.
Beneficios de la herencia:
Fundamental para la reutilizacin y
extensibilidad del software.
Construccin de nuevas clases a partir de las
ya existentes, evitando extenso trabajo.
Facilita la creacin de objetos a partir de
otros existentes.
Ejemplo
Clases Abstractas
La herencia permite que existan clases
que nunca sern instanciadas
directamente.
En el ejemplo anterior, las clases Perro y
Humano heredan todos los atributos
de la clase Mamfero, pero en ejecucin,
no habr ningn objeto mamfero que no
pertenezca a una de estas subclases.
Clases Abstractas
Una clase abstracta es escrita con el
propsito de que las sub clases le agreguen
estructura y comportamiento, mediante la
implementacin de sus mtodos
incompletos (abstractos).
Un mtodo abstracto es aquel que est
definido en la clase padre, pero que no
posee implementacin. Es obligatorio que
sean definidos en clases abstractas y toda
clase hija est obligada a implementarlo.
Redefinicin de mtodos
Distinto a la sobrecarga de mtodos
La sobrecarga agrega el mismo comportamiento
pero con distintos parmetros.
La redefinicin sobreescribe el mtodo.
Una clase derivada puede redefinir algn
mtodo ya definido. Las condiciones para
esto:
Mismo nombre y cantidad de parmetros.
Pblico o protegido.
Si se quiere establecer un mtodo que no
pueda ser redefinido, se debe agregar el
modificador final a su definicin.
Reglas de herencia
1. La herencia simple genera una jerarqua. En
la raz de esta jerarqua se ubica la clase
Object.
2. Todas las clases tienen exactamente una
super clase, excepto la clase object.
3. Una sub clase hereda todos los mtodos
pblicos y protegidos y puede declarar
atributos y mtodos diferentes a los
heredados.
Reglas de herencia cont.
4. Las variables heredadas se pueden
redefinir, aunque no es lo correcto.
5. Cuando una sub clase sobrescribe un
mtodo heredado, el nombre especial
super permite que el mtodo
sobrescrito sea usado, es decir, usar el
mtodo del padre.
Polimorfismo
Cuando se aplica un mtodo a un objeto, el
tipo del objeto se verifica en tiempo de
compilacin para asegurarse que el mtodo
exista en la clase a ser llamada.
En tiempo de ejecucin, puede ocurrir que
el objeto corresponda a una sub-clase del
objeto declarado.
En estos casos se utiliza la instancia real
para decidir qu mtodo llamar, esto en el
caso que la clase sobrescriba un mtodo de
la clase padre.
Ejemplo
public class ClaseA {
public void print(){
StdOut.println(Soy la clase A);
}
}
public class ClaseB extends ClaseA {
public void print(){
StdOut.println(Soy la clase B);
}
}
public static void main(String [] args) {
ClaseA a1 = new ClaseA();
a1.print(); // qu se imprime?
ClaseA a2 = new ClaseB();
a2.print(); // qu se imprime?
}

También podría gustarte