Primero que todo, es necesario tener una idea de como se comportan la orientación a objetos, si no lo recuerdan por favor revisar eso antes de continuar.
¿Que es la herencia?
La herencia es una característica de algunos lenguajes de programación orientados a objetos, que permite crear objetos a base de otros ya existentes. Como ya hemos comentado en clases, la Orientación a objetos permite la reutilización de código.
Llamaremos superclase, a la clase de la cual heredamos, y en el caso de Java, solo podremos heredar de una sola clase.
La clase de la cual heredamos, nos aporta todas las funciones y métodos que esta posee, dejando así más fácil su implementación.
Cosas que hay que tener en cuenta:
- Si no especificamos un constructor, se intentara usar un constructor de la clase padre.
- Es posible especificar el uso del constructor de la superclase, llamándolo directamente con “super();” .
- Yo puedo redefinir los métodos de la superclase, simplemente escribiéndolos de nuevo.
- Modificar un método, para que me devuelva valores distintos, o tipos de variables distintos, puede generar problemas en el polimorfismo.((Tarea)
- No se puede heredar de mas de una clase. Para eso existen las interfaces*.
A modo de ejemplo podemos tener las siguientes clases:
La Clase Persona :
public class Persona {
String rut;
String nombre;
boolean cabello;
String colorCabello;
Persona()
{
}
Persona(String nombre)
{
this.nombre = nombre;
}
public String getNombre()
{
return this.nombre;
}
public void setNombre(String nombre)
{
this.nombre = nombre;
}
}
La clase alumno
public class Alumno extends Persona{
String apellido;
/** Creates a new instance of Alumno */
public Alumno() {
super();
}
public Alumno(String nombre)
{
super(nombre);
}
void setApellido(String apellido)
{
this.apellido = apellido;
}
public String getNombre()
{
return this.nombre+" "+this.apellido;
}
public static void main (String args[])
{
Alumno alumno = new Alumno();
alumno.setNombre("Naito");
alumno.setApellido("Neko");
Alumno alumnoDos = new Alumno("Pepe");
alumnoDos.setApellido("Grillo");
System.out.println("Alumno 1 ->t"+alumno.getNombre());
System.out.println("Alumno 2 ->t"+alumnoDos.getNombre());
}
¿Como heredo?
Como podemos notar en los ejemplos anteriores, para que una clase herede de otra, simplemente usaremos “extends” luego de la definición del nombre de la clase, seguida por el nombre de la clase de la cual queremos heredar.
En este caso lo que tenemos se puede observar en el siguiente esquema :
En este caso la herencia es bastante obvia, y lo que estamos haciendo, es crear una clase Alumno,que posee las características y métodos de la clase persona.
Para la próxima clase.
Para la próxima clase, deben de hacer una investigación sobre el polimorfismo en Java, traer un ejemplo programado y explicarlo en frente de la clase. Los ejemplos deben de ser avisados a mas tardar el día miércoles 10, y estos temas de ejemplos no se pueden repetir!!!!. La prioridad es por orden de llegada, o sea el primero que elija un tema para el ejemplo es el que se lo queda.