11. LA POO - 11.3 Herencia
eugeniaperez.es
11.3 La herencia
eugeniaperez.es
Encapsulación
Polimorfismo
11.3 La herencia
Los modificadores de acceso en Java son:
private, protected, public y default (si no especificamos).
Los modificadores de acceso permiten restringir el acceso a los datos de un objeto, para que no sean modificados de forma incorrecta por parte de otros programadores.
eugeniaperez.es
11.3 La herencia
Así sabemos que lo más correcto es definirlos como private y acceder a los mismos a través de get/set.
eugeniaperez.es
11.3 La herencia
eugeniaperez.es
¡Los atributos o métodos privados NO se heredan!
Coche, moto y Bus heredarán los atributos y los métodos de Vehículo
eugeniaperez.es
11.3 La herencia
public class Futbolista
{
private int id;
private String Nombre;
private String Apellidos;
private int Edad;
private int dorsal;
private String demarcacion;
// constructor, getter y setter
public void Concentrarse() {
...
}
public void Viajar() {
...
}
public void jugarPartido() {
...
}
public void entrenar() {
...
}
}
public class Entrenador
{
private int id;
private String Nombre;
private String Apellidos;
private int Edad;
private String idFederacion;
// constructor, getter y setter
public void Concentrarse() {
...
}
public void Viajar() {
...
}
public void dirigirPartido() {
...
}
public void dirigirEntreno() {
...
}
}
public class Masajista
{
private int id;
private String Nombre;
private String Apellidos;
private int Edad;
private String Titulacion;
private int aniosExperiencia;
// constructor, getter y setter
public void Concentrarse() {
...
}
public void Viajar() {
...
}
public void darMasaje() {
...
}
}
11.3 La herencia
11.3 La herencia
eugeniaperez.es
public class SeleccionFutbol
{
protected int id;
protected String Nombre;
protected String Apellidos;
protected int Edad;
// constructor, getter y setter
public void Concentrarse() {
...
}
public void Viajar() {
...
}
}
public class Futbolista extends SeleccionFutbol
{
private int dorsal;
private String demarcacion;
public Futbolista() {
super();
}
// getter y setter
public void jugarPartido() {
...
}
public void entrenar() {
...
}
}
public class Entrenador extends SeleccionFutbol
{
private String idFederacion;
public Entrenador() {
super();
}
// getter y setter
public void dirigirPartido() {
...
}
public void dirigirEntreno() {
...
}
}
public class Masajista extends SeleccionFutbol
{
private String Titulacion;
private int aniosExperiencia;
public Masajista() {
super();
}
// getter y setter
public void darMasaje() {
...
}
}
11.3 La herencia
eugeniaperez.es
11.3 La herencia
public class SeleccionFutbol
{
protected int id;
protected String Nombre;
protected String Apellidos;
protected int Edad;
// constructor, getter y setter
public void Concentrarse() {
...
}
public void Viajar() {
...
}
}
public class Futbolista extends SeleccionFutbol
{
private int dorsal;
private String demarcacion;
public Futbolista() {
super();
}
// getter y setter
public void jugarPartido() {
...
}
public void entrenar() {
...
}
}
En la clase base, los atributos deben ser protegidos.
En la clase hija, la herencia se representa con extends.
super() sirve para llamar al constructor de la clase padre.
Debe ser lo primero que se haga.
public class SeleccionFutbol
{
protected int id;
protected String Nombre;
protected String Apellidos;
protected int Edad;
public SeleccionFutbol(int id, String nombre, String apellidos, int edad) {
this.id = id;
this.Nombre = nombre;
this.Apellidos = apellidos;
this.Edad = edad;
}
public void Concentrarse() {
...
}
public void Viajar() {
...
}
}
public class Futbolista extends SeleccionFutbol
{
private int dorsal;
private String demarcacion;
public Futbolista(int id, String nombre, String apellidos,
int edad, int dorsal, String demarcacion) {
super(id, nombre, apellidos, edad);
this.dorsal = dorsal;
this.demarcacion = demarcacion;
}
// getter y setter
public void jugarPartido() {
...
}
public void entrenar() {
...
}
}
public class Main {
public static void main(String[] args) {
Entrenador delBosque = new Entrenador(1, "Vicente", "Del Bosque", 60, "123456M");
Futbolista iniesta = new Futbolista(2, "Andrés", "Iniesta", 31, 6, "Interior Derecho");
Masajista pacoflores = new Masajista(3, "Paco", "Flores", 39, "Fisioterapeuta", 18);
...
}
}
11.3 La herencia
eugeniaperez.es
Herencia
eugeniaperez.es
Proyecto ED.UT4.ClientInheritance:
https://eugenia_perez@bitbucket.org/eugenia_perez/ed.ut4.clientinheritance.git
Usuario: entornos_desarrollo
Password: Entornos
Herencia
eugeniaperez.es