0% encontró este documento útil (0 votos)
2 vistas8 páginas

Interfaces en Java: Guía y Ejemplo Práctico

Una interfaz en Java define un contrato de métodos que una clase debe implementar, sin proporcionar la implementación. Permite el polimorfismo y el desacoplamiento, facilitando la flexibilidad en el diseño de software. Se diferencia de una clase abstracta en que solo contiene métodos abstractos y permite que una clase implemente múltiples interfaces.

Cargado por

Lizneira Galvan
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas8 páginas

Interfaces en Java: Guía y Ejemplo Práctico

Una interfaz en Java define un contrato de métodos que una clase debe implementar, sin proporcionar la implementación. Permite el polimorfismo y el desacoplamiento, facilitando la flexibilidad en el diseño de software. Se diferencia de una clase abstracta en que solo contiene métodos abstractos y permite que una clase implemente múltiples interfaces.

Cargado por

Lizneira Galvan
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INTEFACES EN JAVA

Una interfaz es un tipo de contrato que define un conjunto de métodos (funciones) que una clase
debe implementar, pero sin proporcionar la implementación real de esos métodos. Las interfaces
especifican qué se debe hacer, pero no cómo se debe hacer. Esto permite a las clases que
implementan la interfaz tener su propia forma de realizar las acciones definidas en ella.

Características:
1. Solo declara métodos: No contienen la implementación de los métodos, solo la firma (el
nombre, los parámetros y el tipo de retorno).

2. No tiene atributos o tiene atributos constantes: En la mayoría de los lenguajes, las interfaces no
pueden contener atributos, o si los tienen, suelen ser constantes (valores fijos que no pueden
cambiar).

3. Una clase puede implementar varias interfaces: A diferencia de la herencia en la que una clase
solo puede heredar de una clase padre, en muchos lenguajes de programación una clase puede
implementar múltiples interfaces. Esto es útil para dar a una clase varios comportamientos
distintos.

4. Contrato para la implementación: Cuando una clase implementa una interfaz, se compromete a
proporcionar una implementación para todos los métodos definidos en la interfaz.

Ejemplo

Una clase que implemente esta interfaz debe proporcionar las implementaciones de los métodos:
En este caso, la interfaz Volador define las acciones generales que cualquier cosa que "vuele" debe
tener, pero es la clase Avion la que implementa esos comportamientos.

Ventajas de las interfaces:


1. Polimorfismo: Permiten que múltiples clases se traten de manera similar, incluso si implementan
las acciones de manera diferente. Esto facilita la extensión y flexibilidad del código.

2. Desacoplamiento: Las interfaces ayudan a reducir el acoplamiento entre componentes de


software, ya que las clases pueden comunicarse a través de interfaces sin saber detalles de
implementación.
3. Flexibilidad: Al permitir que una clase implemente varias interfaces, se pueden definir
comportamientos específicos sin las limitaciones de la herencia única.
Diferencias entre interfaz y clase abstracta:
✓ Una clase abstracta puede tener tanto métodos abstractos (sin implementación) como
métodos con implementación, mientras que una interfaz solo tiene métodos abstractos
(aunque en algunos lenguajes modernos como Java, las interfaces pueden tener métodos
con implementación por defecto).
✓ Una clase solo puede heredar de una clase abstracta, pero puede implementar múltiples
interfaces.
✓ Las interfaces son una parte clave del diseño orientado a objetos para construir sistemas
modulares, flexibles y mantenibles.

Ejemplo de múltiples interfaces


Ejercicio Práctico: Creación e Implementación de Interfaces en un
Sistema de Recursos Humanos

En este ejercicio, los estudiantes crearán un sistema para gestionar empleados en una empresa.
Los empleados pueden tener diferentes roles, como Gerentes, Desarrolladores, o Contratistas
Externos. Cada tipo de empleado tiene comportamientos específicos, pero todos deben poder
realizar ciertas tareas básicas, como trabajar y recibir pagos. Los estudiantes deberán crear
interfaces que representen las funciones comunes de los empleados, y luego crear clases que
implementen esas interfaces.

Objetivo:

✓ Aprender a definir interfaces en POO.


✓ Implementar múltiples interfaces en una clase.
✓ Aplicar el polimorfismo para gestionar diferentes tipos de empleados en un sistema de
Recursos Humanos (RRHH).
Crear interfaces

1. Define la interfaz Empleado que tendrá los siguientes métodos:

✓ void trabajar(): El empleado realiza su trabajo.


✓ void recibirPago(): El empleado recibe su salario.

2. Define la interfaz Gerente que tendrá los siguientes métodos adicionales:

✓ void gestionarProyectos(): El gerente gestiona un proyecto.


✓ void realizarEvaluaciones(): El gerente evalúa a otros empleados.

3. Define la interfaz Desarrollador que tendrá los siguientes métodos adicionales:

✓ void programar(): El desarrollador escribe código.


✓ void corregirErrores(): El desarrollador corrige errores en el código.

4. Define la interfaz Contratista que tendrá los siguientes métodos adicionales:

✓ void renovarContrato(): El contratista renueva su contrato de trabajo.

Crear clases que implementen las interfaces

1. Crea la clase EmpleadoGerente que implemente las interfaces Empleado y Gerente. Esta clase
debe proporcionar las implementaciones para los métodos de ambas interfaces.

2. Crea la clase EmpleadoDesarrollador que implemente las interfaces Empleado y Desarrollador.


Esta clase debe proporcionar las implementaciones para los métodos correspondientes.

3. Crea la clase EmpleadoContratista que implemente las interfaces Empleado y Contratista.

Crear el sistema de gestión de empleados


1. Crea una clase SistemaRRHH que pueda gestionar una lista de empleados, sin importar si son
gerentes, desarrolladores o contratistas.

2. Simula las actividades de la empresa llamando a los métodos de las interfaces en cada
empleado:

- Todos los empleados deben trabajar.

- Los gerentes deben gestionar proyectos y realizar evaluaciones.

- Los desarrolladores deben programar y corregir errores.


- Los contratistas deben renovar sus contratos.

- Todos los empleados deben recibir pago.

Extensión opcional
1. Agrega una nueva clase EmpleadoAdministrativo que implemente las interfaces Empleado y que
tenga métodos adicionales relacionados con tareas administrativas, como gestionarDocumentos().

2. Si el tiempo lo permite, agrega alguna nueva interfaz llamada Consultor con el método
consultarEmpresa(), y crea una clase ConsultorExterno que implemente esta nueva interfaz junto
con Contratista.

Ayuda
La sentencia instanceof en Java (y otros lenguajes similares) se utiliza para verificar si un objeto es
una instancia de una clase específica o implementa una determinada interfaz. Esto es útil cuando
tienes un objeto que puede ser de múltiples tipos (como cuando trabajas con herencia o
interfaces) y necesitas saber su tipo real antes de realizar alguna operación específica.

También podría gustarte