viernes, 7 de agosto de 2009

Declare Interfaces (Exam Objectives 1.1 and 1.2)

Declare Interfaces (Exam Objectives 1.1 and 1.2)
Declaring an Interface


public interface Bounceable{
public abstract void bounce( );
public abstract void setBounceFactor(int bf); }

Class Tire implements Bounceable {
public void bounce( ){...}
public void setBounceFactor(int bf){ } }
  • Todos los interface methods son implícitamente public and abstract.
  • Todas las variables definidas en una interface debe ser public, static, and final - las interfaces sólo puede declarar constantes, no instance variables.Interface methods no debe ser static.
  • Dado que los interface methods son abstract, no pueden ser final, strictfp, o native.
  • Una interfaz puede extender uno o más interfaces.
  • Una interfaz no puede extender otra interfaz.
  • Una interfaz no puede implementar otra interfaz o clase.
  • Una interfaz debe declararse con la palabra clave interface.
  • Un Interfaz puede ser usado en polimorfismo.
Las interfaces son implicitamente public y abstract asi que estas dos interfaces son lo mismo:
public interface Bounceable {
public abstract void bounce();
public abstract void setBounceFactor(int bf);
}

public interface Bounceable {
void bounce(); // No modifiers
void setBounceFactor(int bf); // No modifiers
}

Por ejemplo, las siguientes cinco method declarations, si es declarado dentro de sus propias interfaces, son legales e identicas.
void bounce();
public void bounce();
abstract void bounce();
public abstract void bounce();
abstract public void bounce();

Los siguientes interface method declarations no compilan:
final void bounce(); // final and abstract can never be used - together, and abstract is implied
static void bounce(); // interfaces define instance methods
private void bounce(); // interface methods are always public
protected void bounce(); // (same as above)

Declaring Interface Constants
Usted puede poner constantes en una interface.Con esto garantiza que la implementacion de la interfaz tendra acceso a la misma constante, como si la clase que había heredado. 
Las 
key rule for interface constants son: 
final public static 

El siguiente codigo no compila:
interface Foo {
int BAR = 42;
void go();
}
class Zap implements Foo {
public void go() {
BAR = 27;
}
}
Usted no puede cambiar el valor de una constante! Una vez que el valor ha sido asignado, el valor no puede ser modificado.

No hay comentarios: