Cita:
Iniciado por AAlejandroR Hola, he estado leyendo sobre la interfaz de JAva, y veo que no sirve para nada, creas una nueva clase con unos parametros y metodos, y luego en el main tienes que volver a copiar los metodos... entonces para que srive?
edito: otra duda, que no tiene que ver con esto, si creo 2 clases mas la del main, y en uno X tienede metodo Xx y en Y tiene de metodo Yy. En la clase X puedo utilizar el metodo Yy? y viceversa??
Para su primera pregunta, personalmente creo que no ha estado revisando la bibliografía correcta. Le pondré un ejemplo muy clásico, para tratar de explicar su aplicación.
Suponga que tiene una clase FiguraGeometrica, esta en la realidad no existe sino que es una abstracción ya que por figura geometrica podemos nombrar a un Cuadrado o a un Circulo por ejemplo; sin embargo esta clase nos sirve para agrupar a todas las figuras geométricas. Ahora si deseamos calcular el Perimetro de una figura geometrica notaremos que su implementación depende de la figura en cuestión ya que del Cuadrado es dado por cuatro veces la longitud de su lado, mientras que del Circulo es el doble de PI por el rádio. Ahora no hay problema cada Clase Cuadro y Circulo podría implementar su propio método para calcular el perímetro, pero al ser este un método común para toda figura geométrica, debería estar presente en la clase FiguraGeometrica. Desde ese punto de vista es necesario que FiguraGeometrica sea una Interfaz, o como otros le dicen una
clase abstracta pura ya que no implementa ningún método. La codificacíon se realiza en las clases que implementan la interfaz. Lo mismo sería si desea calcular el Area u otras cosas más propias de las figuras geométricas.
Para que quede claro le pongo los códigos descritos.
Código Java:
Ver originalpublic interface FiguraGeometrica {
public double Perimetro();
}
public class Cuadrado implements FiguraGeometrica{
private double lado;
public double getLado() {
return lado;
}
public void setLado(double lado) {
this.lado = lado;
}
@Override
public double Perimetro() {
return 4*this.lado;
}
}
public class Circulo implements FiguraGeometrica{
private double radio;
public double getRadio() {
return radio;
}
public void setRadio(double radio) {
this.radio = radio;
}
@Override
public double Perimetro() {
return 2*Math.
PI*this.
radio; }
}
Para su segunda pregunta, una clase puede usar un método de una clase al tener una instanciarla de esta a menos que el método sea estático.
Espero que le sirva sino pregunte y revise la documentación, abundante en la red.