2. Herencia - Análisis
A nivel conceptual, la Herencia define una
relación "ser" entre dos Clases de Objetos, las
cuales se denominan clase base (o superclase) y
clase derivada (o subclase).
3. Herencia - Análisis
Esta relación significa que todos los objetos de
la clase derivada son también objetos de la clase
base.
Sin embargo, no se cumple que todos los
objetos de la clase base son también objetos de
la clase derivada.
4. Herencia - Análisis
A la hora de detectar la presencia de una
asociación de Herencia en una realidad, se
aplican dos estrategias llamadas generalización
y la especialización.
5. Herencia - Análisis
Generalización: Consiste en introducir una
nueva clase base que reúna atributos comunes a
varias Clases de la realidad.
Auto, Camión, Moto son Vehículos
Estudiante, Profesor, Adscripto son Personas
6. Herencia - Análisis
Especialización: Consiste en agregar una nueva
clase derivada de otra ya existente.
De la clase Auto, puedo obtener Descapotable.
De la clase Casa puedo derivar Chalet
7. Herencia - Análisis
Las clases derivadas reciben (heredan) todos los
atributos y métodos de la superclase:
Si un objeto Persona tiene nombre y apellido, un
objeto Estudiante tendrá nombre y apellido.
8. Herencia - Diseño
En el diagrama de clases UML
una relación de herencia
se representa con un triángulo
que apunta desde la clase
derivada hacia la superclase.
12. Herencia - Implementación
En cuanto a la implementación en Java, una
relación de herencia es una de las formas en que
podemos re-utilizar código.
Una clase derivada no necesita re-escribir todo
el código que ya ha sido escrito para la clase
base.
16. Herencia - Implementación
public class Auto extends Vehiculo {
private int cantPuertas;
public Auto (int id, String mar, String mod,
int cantP);
super (id, mar, mod);
this.cantPuertas = cantP;
}
Se invoca al
constructor de la
clase base
17. Herencia - Implementación
Una vez que hemos implementado la clase base,
podemos hacer referencia a cualquier elemento
o método de la superclase, mediante la palabra
clave super
public String toString(){
return super.toString + “algo nuevo”;
}