FIchas PPR
Paradigmas de Programación
Tema: Interfaces
Docentes:
Ing. Cynthia Corso
Ing. Germán Romaní
Ingeniería en Sistemas de Información: Paradigmas de Programación.
Índice.
1. Interfaces
1.1 Declaración y uso.
1.2 Referencias a Interfaces
1.3 Extensión de interfaces
1.4 Consideraciones generales
1.5 Herencia Múltiple
1.6 Ejemplo de Interfaces
1.6.1
InterfazSerializable
1.6.2
Interfaz Cloneable
2. Referencias
Guía Teórica/Práctica de Clase.
Página -1- de -10-
Ingeniería en Sistemas de Información: Paradigmas de Programación.
SEMANA 1
1. Interfaces
El concepto de Interface lleva un paso más adelante la idea de las clases
abstractas. En Java una interface es una clase abstracta pura, es decir una clase
donde todos los métodos sonabstractos (no se implementa ninguno). Permite al
diseñador de clases establecer la forma de una clase (nombres de métodos, listas
de argumentos y tipos de retorno, pero no bloques de código). Una interface puede
también contener datos miembro, pero estos son siempre static y final. Una
interface sirve para establecer un 'protocolo' entre clases.
Para crear una interface, se utiliza la palabraclave interface en lugar de
class. La interface puede definirse public o sin modificador de acceso, y tiene el
mismo significado que para las clases. Todos los métodos que declara una interface
son siempre public.
Para indicar que una clase implementa los métodos de una interface se
utiliza la palabra clave implements. El compilador se encargará de verificar que la
clase efectivamentedeclare e implemente todos los métodos de la interface. Una
clase puede implementar más de una interface.
1.1 Declaración y uso
Una interface se declara:
interface nombre_interface {
tipo_retorno nombre_metodo ( lista_argumentos ) ;
. . .
}
Por ejemplo:
interface InstrumentoMusical {
void tocar();
void afinar();
String tipoInstrumento();
}
Y una clase que implementa la interface:class InstrumentoViento extends Object implements
InstrumentoMusical {
void tocar() { . . . };
void afinar() { . . .};
String tipoInstrumento() {}
}
class Guitarra extends InstrumentoViento {
String tipoInstrumento() {
return "Guitarra";
}
}
Guía Teórica/Práctica de Clase.
Página -2- de -10-
Ingeniería en Sistemas de Información: Paradigmas de Programación.
La claseInstrumentoViento implementa la interface, declarando los métodos
y escribiendo el código correspondiente. Una clase derivada puede también
redefinir si es necesario alguno de los métodos de la interface.
1.2 Referencias a Interfaces
Es posible crear referencias a interfaces, pero las interfaces no pueden ser
instanciadas. Una referencia a una interface puede ser asignada a cualquier objeto
queimplemente la interface. Por ejemplo:
InstrumentoMusical instrumento = new Guitarra();
instrumento.play();
System.out.println(instrumento.tipoInstrumento());
InstrumentoMusical i2 = new InstrumentoMusical();
//error.No se puede instanciar
1.3 Extensión de interfaces
Las interfaces pueden extender otras interfaces y, a diferencia de las clases, una
interface puede extender más de unainterface. La sintaxis es:
interface nombre_interface extends nombre_interface
, . . . {
tipo_retorno nombre_metodo ( lista_argumentos ) ;
. . .
}
Agrupaciones de constantes
Dado que, por definición, todos los datos miembros que se definen en una interface
son static y final, y dado que las interfaces no pueden instanciarse resulta una
buena herramienta para implantar grupos de constantes. Porejemplo:
public interface Meses {
int ENERO = 1 , FEBRERO = 2 . . . ;
String [] NOMBRES_MESES = { " " , "Enero" , "Febrero" ,
. . . };
}
Esto puede usarse simplemente:
System.out.println(Meses.NOMBRES_MESES[ENERO]);
1.4 Consideraciones generales
Un interfaz podrá verse simplemente como una forma, es como un molde.
solamente permite declarar nombres de métodos, listas de...
Regístrate para leer el documento completo.