Java - mas preguntas de examenes

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

mas preguntas de examenes

Publicado por jose maria (85 intervenciones) el 05/09/2016 10:53:05
buenas, teniendo parte del codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class A
{
 public int mult (int a, int b)
  {
  return a*b
   }
}
 
public class B extends A
{
 public int mult (int a, int b, int c)
 {
  return mult (a,b)*c
  }
}

¿que debolveria si....?
B b= new B;
System.out.println (b.mult (2,2,3));

la pregunta da como respuesta 12
la cosa es que return mult (a,b)*c creo que es el encargado de hacer la operación ya que aunque B es hija de A no se llama al método en A, ¿y que hace un return (a,b)? ¿suma, multiplica....?
¿me explico?
gracias
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
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

mas preguntas de examenes

Publicado por xve (345 intervenciones) el 05/09/2016 14:44:54
Hola Jose, lo que tienes aqui, es una sobrecarga de la función mult, la cual puede recibir dos o tres parametros... es lo mismo que si tuvieras esto:
1
2
3
4
5
6
7
8
9
10
11
public class A
{
 public int mult (int a, int b)
 {
  return a*b
 }
 public int mult (int a, int b, int c)
 {
  return mult (a,b)*c
 }
}

Dependiendo de los parámetros que se envíen, se utilizara una función o la otra.
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

mas preguntas de examenes

Publicado por ctmy (47 intervenciones) el 05/09/2016 17:40:22
Primero estas llamando al metodo 'mult' de 'b' porque estas proveyendo 3 parametros(valores).

Despues 'b.mult' usa el metodo 'mult' de la clase A 'mult(a,b)' que multiplica los dos primeros valores '2*2=4'.

Finalmente el numbero 4 se multiplica con 3 en el metodo 'b.mult'. (2*2)*3=12.
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
sin imagen de perfil
Val: 89
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

mas preguntas de examenes

Publicado por jose maria (85 intervenciones) el 05/09/2016 17:52:57
ahora si que me perdi.....
la sobrecarga la entendía, pero parece que estaba equivocado....
primero, si llamo a dos métodos de distintas clases de la misma forma no se toma como sobrecarga, ¿verdad?
pero al ser una extensión de la clase padre, si llamo a un método en la hija igual que a un método de la del padre, si se entiende como sobrecarga ¿verdad?
entonces, al ejecutar System.out.println (b.mult (2,2,3));
lo primero que hace es irse al método mult de la clase b ¿no? como es un método sobrecargado, ejecuta la parte de la clase padre:
return a*b (2*2=4)
luego continua con lo que sige de ese método de la clase b....
return mult (a,b)*c (4*3=12) ¿verdad?
entonces ¿return mult (a,b) es la parte que llama al método de la clase A que realiza la operacion a*b?
me explique?
gracias
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