Java - ¿Como hacer una herencia de una clase que tenga herencia?

 
Vista:
sin imagen de perfil
Val: 12
Ha aumentado su posición en 329 puestos en Java (en relación al último mes)
Gráfica de Java

¿Como hacer una herencia de una clase que tenga herencia?

Publicado por Ricardo (9 intervenciones) el 29/11/2016 23:28:36
Hola!
Tengo una duda, como se hace una herencia de a una clase que ya contenga herencia.
Tengo la clase Persona, Cliente y ClienteX

Cliente hereda de Persona, Por ende Persona es la clase padre, y ahora quiero hacer herencia desde la clase ClienteX a la clase Cliente.

Mi duda es, Para hacer esa herencia desde ClienteX, debo escribir los atributos de Persona y Cliente?
o solamente los de Cliente?

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

¿Como hacer una herencia de una clase que tenga herencia?

Publicado por Hector (27 intervenciones) el 29/11/2016 23:50:54
Hola, no debes crear denuevo los atributos de la clase padre en la hija, pero si debes agregar los parámetros usados en el constructor padre, por ejemplo si tu clase Persona tiene un constructor con parámetros nombre y apellido, en el constructor de Cliente debes llamar el método super() que llama al constructor de la clase padre, pasando todos los parámetros a a usar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Persona{
    protected String nombre;
    protected String apellido;
 
    public Persona(String nombre, String apellido){
         this.nombre = nombre;
         this.apellido = apellido;
    }
}
 
class Cliente extends Persona{
    protected float descuento;
 
    public Cliente(String nombre, String apellido, float descuento){
        super(nombre, apellido);
        this.descuento = descuento;
    }
}
 
class ClienteX extends Cliente{
    protected float descuentoEspecial;
 
    public Cliente(String nombre, String apellido, float descuentoEspecial){
        super(nombre, apellido, 3000); // Observa que no necesariamente debes agregar descuento al constructor de ClienteX
        this.descuentoEspecial = descuentoEspecial;
    }
}

Observa que debes ir incorporando los atributos de la clase padre y luego llamar super(), la cantidad de parámetros depende mas que nada de tu constructor o si quieres utilizar valores predeterminados para ellos.

Recuerda que debes utilizar public o protected para heredar atributos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Como hacer una herencia de una clase que tenga herencia?

Publicado por Lawliet (303 intervenciones) el 29/11/2016 23:59:51
Hola...

Te dejo un ejemplo sencillo de HERENCIA, recordemos que nuestra clase padre tendrá los campos y/o métodos comunes entre clases hijas, por lo que no es necesario hacer una HERENCIA de la HERENCIA si hemos sacado dichos campos y/o métodos que cumplen con esa "regla" de la HERENCIA.

Persona
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class Persona {
 
	protected int id;
	protected String nombre;
	protected String apellidos;
	protected String correo;
 
	public Persona(){}
 
	public Persona(int id, String nombre, String apellidos, String correo) {
		this.id = id;
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.correo = correo;
	}
 
	public int getId() {
		return id;
	}
 
	public void setId(int id) {
		this.id = id;
	}
 
	public String getNombre() {
		return nombre;
	}
 
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
 
	public String getApellidos() {
		return apellidos;
	}
 
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}
 
	public String getCorreo() {
		return correo;
	}
 
	public void setCorreo(String correo) {
		this.correo = correo;
	}
}

Alumno
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Alumno extends Persona {
 
	private String matricula;
 
	public Alumno(){
		super();
	}
 
	public Alumno(int id, String nombre, String apellidos, String correo, String matricula) {
		super(id, nombre, apellidos, correo);
		this.matricula = matricula;
	}
 
	public String getMatricula() {
		return matricula;
	}
 
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
 
	@Override
	public String toString() {
		return "Alumno [matricula=" + matricula + ", id=" + id + ", nombre=" + nombre + ", apellidos=" + apellidos + ", correo=" + correo + "]";
	}
}

Profesor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Profesor extends Persona {
 
	private String cedula;
 
	public Profesor(){
		super();
	}
 
	public Profesor(int id, String nombre, String apellidos, String correo, String cedula) {
		super(id, nombre, apellidos, correo);
		this.cedula = cedula;
	}
 
	public String getCedula() {
		return cedula;
	}
 
	public void setCedula(String cedula) {
		this.cedula = cedula;
	}
 
	@Override
	public String toString() {
		return "Profesor [cedula=" + cedula + ", id=" + id + ", nombre=" + nombre + ", apellidos=" + apellidos + ", correo=" + correo + "]";
	}
}

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar