Vamos a ver cómo se usan las clases de tipo interface. Se usan de igual manera que las clases abstractas, pero tienen unas características peculiares propias de ellas que las diferencian. Las interfaces establecen las variables y funciones que se van a tener, pero no se implementan las funciones dentro de ellas, sino que se implementan en las clases derivadas.
No podemos heredar de varias clases abstractas, pero sí que se puede hacer herencia múltiple usando interfaces.
Un ejemplo para explicarlo todo ésto es el siguiente:
package javaMedio;
public class JavaMedio5Interfaz {
public static void main(String[] args) {
unaClase a;
a = new unaClase();
a.nombre = «María»;
a.escribir();
a.contar();
}
}
abstract class cBase {
public String nombre;
public void escribir() {
System.out.println(nombre);
}
}
interface iBase {
public static int version = 2;
public void contar();
}
class unaClase extends cBase implements iBase {
public void contar() {
System.out.println(«versión: » + version
+ «rnvamos a contar: 0,1,10,11,100,101,110,111,1000…»);
}
}
Su salida es la siguiente:
María
versión: 2
vamos a contar: 0,1,10,11,100,101,110,111,1000…
Vamos con la clase que hereda todo:
class unaClase extends cBase implements iBase {
public void contar() {
System.out.println(«versión: » + version
+ «rnvamos a contar: 0,1,10,11,100,101,110,111,1000…»);
}
Observa que extiende cBase e implementa iBase, extends e implements son palabras clave. Dentro de ésta clase sólo se implementa la función contar(), y la función escribir ya está implementada.
No tiene más complicaciones, espero que haya servido de aclaración si eres nuevo o de recuerdo si ya eres veterano en ésto.
Un saludo