08
Feb
13

Propiedades de la P.O.O. (Interfaces)

Una Clase define la manera la que accedemos a los atributos de las instancias (Objectos) de la misma. Ese conjunto de métodos forman la interfaz del Objeto con el mundo exterior; por ejemplo el switch de una lampara es parte de la interfaz del objeto Lampara con el objeto Persona.

En la descripción más básica una interfaz es un conjunto de métodos con cuerpos vacíos que se relacionan entre sí, no puede tener variables solo se permite la declaración de constantes, y de los métodos solo se puede declarar la firma de este [la firma de un método está compuesta por: tipo de dato de retorno | nombre del método | parámetros de entrada]. De las interfaces no se pueden crear instancias pero se pueden crear implementaciones y éstas implementaciones deben describir el cuerpo del método descrito en la interfaz. A demás a las interfaces también se les aplica el principio de la ‘Herencia’, pero en estas existe la figura de herencia multiple, que no existe en la herencia de clases.

Para el ejemplo de Interfaces que se aplicará al ejemplo usando en el código anterior (P.O.O. Herencia)  para continuar con la explicación.

package ingenio.ds.examples;

public class Interfaces{

	public static void main(String argumentos[]){

	}
	/*
	 *En las implementaciones de Mostrable o Acelerable no nos importa
	 *de que clase son los objetos lo único que tenemos en cuenta es q
	 *ue */
	public static void acelerar(AcelerableMostrable instancias[]){
		for(AcelerableMostrable instancia:instancias){
			instancia.mostrar();
			instancia.acelerar(6);
		}
	}
}

/*definición de la interfaz mostrable*/
interface Mostrable{
	/*definición de una constante, debe ser 'static final' por convención se e
	 *scribre el nombre en mayuscula sostenida*/
	public static final boolean ES_MOSTRABLE=true;
	/*definición del método mostrar*/
	public void mostrar();
}

/*definición de la interfaz acelerable*/
interface Acelerable{
	/*definición de una constante, debe ser 'static final' por convención se e
	 *scribre el nombre en mayuscula sostenida y los espacios con '_' */
	public static final double RELACION_ACELERACION=0.2;
	/*definición del método acelerar*/
	public void acelerar(int segundos);
}

/*dentro de las interfaces también existe la figura de la herencia aunque en e
 *estas puede hacerse de manera multiple*/

interface AcelerableMostrable extends Mostrable,Acelerable{

	/*esta interfaz tiene  por herencia las constantes boolean ES_MOSTRABLE y
	 * double RELACION_ACELERACION */

	/*esta interfaz tiene  por herencia los métodos void mostrar() y void acel
	 *erar(int) */

}

La implementación de una interfaz permite a una clase ser más formal respecto a los atributos y métodos que esta debe proporcionar,  las interfaces forman un contrato entre la clase que las implementan y el resto del mundo, y este contrato es aplicado por el compilador y para ser redundantes en tiempo de compilación. Si una clase implementa una interfaz, se sobre entiende que todos los métodos definidos por esa interfaz están implementados en el código fuente de la clase.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


I+Ds

Dudas consultas
Facebook
Twiter
Google +

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevas publicaciones por correo.

Únete a otros 348 seguidores

Ingenio DS en Facebook

Redes Sociales y Archivos

Entradas

febrero 2013
L M X J V S D
« Ene   Abr »
 123
45678910
11121314151617
18192021222324
25262728  

IngenioDS en twiter


A %d blogueros les gusta esto: