Las interfaces en Java

21/06/2005 - 06:58 por sabrina | Informe spam
En este link
http://64.233.179.104/search?q=cache:U-56e-Dr6WcJ:mami.uclm.es/jbravo/docencia/componentes/Presentaciones_0405/Interfaces.pdf+%22la+clase+KeyAdapter%22+%2B+%22java%22&hl=es

indican que "Una variable de referencia de tipo interfaz sólo tiene
conocimiento de los métodos que hay en la declaración de la interfaz"
y para lo cual dan el siguiente ejemplo :

interface Saludo {void diHola();}
class C1 implements Saludo {public void diHola() {System.out.println("Hola,
Mundo!");}}
class C2 implements Saludo {public void diHola() {System.out.println("Hello,
World!");}}

class Prueba {
public static void main (String [] args)
{Saludo s = new C1();
s.diHola();
C2 cdos = new C2();
s = cdoss.diHola();
}
}
Resultado Hola, Mundo!
Hello, World!

Sinceramente,no entiendo que es lo que quieren demostrar con la clase "
Prueba" de este ejemplo.
¿alguien fuera tan amable de explicarme esto?

Sabrina
 

Leer las respuestas

#1 Luis Miguel Cisneros León
21/06/2005 - 13:56 | Informe spam
Las interfaces son una especie de "Contrato"

Tu defines una interfaz, en dicha interfaz solo declaras métodos, sin
cuerpo.

Luego dices que una clase implementa una interfaz. Esto obliga a la
clase a implementar cada uno de los métodos que declara la interfaz.

Ahora... para que me sirve esto???????????????

veamos este Ejemplo:

interface Volador {

public void volar();
piblic void despegar();
}

class Avion implements Volador {

public void volar() {

System.out.println("el avion vuela");
}

public void despear() {

System.out.println("el avion enciende los motores y despega");

}
}

class Ave implements Volador {

public void volar() {

System.out.println("el ave planea y aletea pocas veces");
}

public void despear() {

System.out.println("el ave aletea y despega ");

}
}

public class Prueba {

public static void main(String a[]) {

Volador ave = new Ave();

Volador avion = new Avion();

ave.volar();
avion.volar();


Volador cualquiera = new Avion();

cualquiera.despegar();

cualquiera = new Ave();

cualquiera.despegar();

}
}


Fijate que usamos una variable del tipo Volador llamada cualquiera.
Lo que nosotros sabemos es que Volador tiene un método llamado despegar
y otro llamado Volar; no me importa que hace ese método, lo que a mi me
interesa es que lo tenga y que yo pueda ejecutarlo. Como la interfaz lo
tiene, la clase que implementa la interfaz también lo tiene, y lo
implemento (lo lleno con código).

así, a una variable del tipo Volador le asigno un objeto del tipo Avión,
es legal ya que Avion es un Volador (lo implementa) y como un volador
sabe volar(no me importa como lo haga) yo ejecuto el método volar() sea
un Ave o un Avión.


Con esto logras una de las máximas de la OO, el Polimorfismo...

Saludos
Luis Cisneros

'sabrina wrote:
En este link
http://64.233.179.104/search?q=cache:U-56e-Dr6WcJ:mami.uclm.es/jbravo/docencia/componentes/Presentaciones_0405/Interfaces.pdf+%22la+clase+KeyAdapter%22+%2B+%22java%22&hl=es

indican que "Una variable de referencia de tipo interfaz sólo tiene
conocimiento de los métodos que hay en la declaración de la interfaz"
y para lo cual dan el siguiente ejemplo :

interface Saludo {void diHola();}
class C1 implements Saludo {public void diHola() {System.out.println("Hola,
Mundo!");}}
class C2 implements Saludo {public void diHola() {System.out.println("Hello,
World!");}}

class Prueba {
public static void main (String [] args)
{Saludo s = new C1();
s.diHola();
C2 cdos = new C2();
s = cdoss.diHola();
}
}
Resultado Hola, Mundo!
Hello, World!

Sinceramente,no entiendo que es lo que quieren demostrar con la clase "
Prueba" de este ejemplo.
¿alguien fuera tan amable de explicarme esto?

Sabrina






MindArs C.A. Luis Miguel Cisneros León
Consultor / Instructor
División de Consultoría en Java™
MindArs C.A.

Av. Francisco de Miranda, Centro Profesional Miranda
Piso 4, Oficina 4-D, Chacao, Caracas - 1060
Distrito Capital - Venezuela

Teléfonos: +58-212-2646581 / 4168586
Celular: +58-414-3015074
E-Mail: <mailto:
Web Site: http://www.mindars.com <http://www.mindars.com>

*Aviso Legal: *
Este mensaje es privado y confidencial, y está dirigido exclusivamente a
su(s) destinatario(s). Si usted ha recibido este mensaje por error, debe
abstenerse de distribuirlo, copiarlo o usarlo en cualquier sentido.
Asimismo, le agradecemos comunicarlo al remitente y borrar el mensaje y
cualquier documento adjunto.

Preguntas similares