Interface y Runable (conceptos)

yamilj
25 de Octubre del 2005
hola, disculpen la molestia.

Revise en algunos libros los conceptos de runnable e interface. Realmente no los asimilo muy bien. Yo se que uno permite que multiples usuario accedan a la clase e interface que compartan atributos y metodos. Si alguien me puediera definir la utilidad de estos dos elementos..para ayudarme asimilar estos conceptos.

muchas gracias de antemano.

Mario Arias SCJP
25 de Octubre del 2005
Lo primero es que Runnable es una interface. y no se usa para eso, se usa para que un proceso corra en un hilo independiente, por ejemplo, tu puedes tener abierto tu navegador, tu calculadora, tu block de notas, y cada una tiene un hilo indepndiente y funcionan al tiempo

Las interfaces en Java se utlizan para poder hacer que un objeto tenga herencia multiple.

Una interface define un tipo de objeto y/o ciertos metodos, pero no su implementación.

vamos a ver el codigo de la interface Runnable para darte un ejemplo

package java.lang;

public interface Runnable
{
public void run();
}

y nada mas, pero para que me sirve si no tiene codigo??

pues el codigo tenemos que crearlo nosotros

Como???

implemetando la interface, cuando yo implemento una interface, debo por obligación sobreescribir los metodos de la interface para que se puedan utlizar o definir la clase como abstract



public Class Cosa implements Runnable
{
public void run()
{
System.out.println("Hola Mundo");
}
}

ahora tengo una Clase Cosa que hereda de Object (como todas las clases en Java) e implementa Runnable. Es decir es Un Object pero tambien es un Runnable, asi que cuando un metodo me pida un Runnable yo le puedo entregar mi clase Cosa...

Como te diste cuenta, Runnable no tiene codigo en si misma, la que si tiene codigo es Thread y el implementa Runnable, en el constructor de un Thread yo le debo pasar un Runnable, cuando yo invoco el metodo miThread.start() (Siendo miThread un instancia de Thread) el crea un nuevo hilo o proceso de ejecución, empezando por el metodo Run del Runnable que le defini en el constructor.

Me hice entender????

Creo que no

Aunque estos conceptos son importantes y deben esar muy claros en tu mente, se asimilan mejor con el tiempo

yamilj
25 de Octubre del 2005
creo entenderte.....runnable que sean como los thread.....y con respecto a interface....simplemente porder incluir esos metodos y/o variables en otras clases que ya son subclases de clases padres, es decir que ya heredaron. Simplemente incluiresos metodos de tu Clase Cosa en otras clases que ya heredaron.

¿no es asi?