
Duda con herencia por delegacion en JAVA
Publicado por Guillermo Rodriguez (5 intervenciones) el 28/11/2016 13:55:47
Hola muy buenas estoy con el tema de herencia por delegacion y tengo una duda....
Tengo 3 clases que se llaman Student,Result y Exam.
La clase result hereda de Student, hasta aqui todo bien....El caso es que sin usar implementacions quiero llamar a un metodo de la clase Exam, pues bien lo que hago es en la clase Result creo una instancia a Exam...
Todo bien pero evidentemente en el metodo de la clase instanciada no puedo llamar a atributos de la clase Student y no puedo hacer lo que se me pide...Os dejo el codigo por si a alguien se le ocurre como hacerlo...
Clase Student:
--------------------------
Clase Result
---------------------
Clase Exam
------------------
Tengo claro que puedo acceder al metodo de exame pero es que quiero llamar a los atributos de Result y evidentmente no se puede....Mi pregunta es...Sin usar implementacion como puedo resolver esto?
Probe ya muchas cosas pero nada...
Un saludo!
Tengo 3 clases que se llaman Student,Result y Exam.
La clase result hereda de Student, hasta aqui todo bien....El caso es que sin usar implementacions quiero llamar a un metodo de la clase Exam, pues bien lo que hago es en la clase Result creo una instancia a Exam...
Todo bien pero evidentemente en el metodo de la clase instanciada no puedo llamar a atributos de la clase Student y no puedo hacer lo que se me pide...Os dejo el codigo por si a alguien se le ocurre como hacerlo...
Clase Student:
--------------------------
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
public class Student {
public String name;
public int roll_no,mark1,mark2;
public Student(String name, int roll_no, int mark1, int mark2) {
this.name = name;
this.roll_no = roll_no;
this.mark1 = mark1;
this.mark2 = mark2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRoll_no() {
return roll_no;
}
public void setRoll_no(int roll_no) {
this.roll_no = roll_no;
}
public int getMark1() {
return mark1;
}
public void setMark1(int mark1) {
this.mark1 = mark1;
}
public int getMark2() {
return mark2;
}
public void setMark2(int mark2) {
this.mark2 = mark2;
}
}
Clase Result
---------------------
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 Result extends Student {
private final String NL = System.getProperty("line.separator");
public Result(String name, int roll_no, int mark1, int mark2) {
super(name, roll_no, mark1, mark2);
}
Exam instancia = new Exam();
public String display() {
StringBuilder sb = new StringBuilder();
sb.append("Name of Student: " +this.name + NL);
sb.append("Roll No. of Student: "+ this.roll_no + NL);
sb.append("Marks of Subject 1: "+this.mark1 +NL);
sb.append("Marks of Subject 2: "+this.mark2 +NL);
System.out.println(sb.toString());
return sb.toString();
}
public void percent_cal(){
instancia.percent_cal();
}
}
Clase Exam
------------------
1
2
3
4
5
6
7
8
public class Exam {
public void percent_cal(){
System.out.println("hola");
}
}
Tengo claro que puedo acceder al metodo de exame pero es que quiero llamar a los atributos de Result y evidentmente no se puede....Mi pregunta es...Sin usar implementacion como puedo resolver esto?
Probe ya muchas cosas pero nada...
Un saludo!
Valora esta pregunta


0