> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/exercicios-java/ud4-exercicios/polimorfismo.md).

# Polimorfismo

1. Crea un programa que represente diferentes instrumentos musicáis.
   1. Con cada instrumento vai a poder facer dúas cousas: **tocar e afinar**.
   2. Os instrumentos serán **o piano, a guitarra e o violín.**
   3. Cada un de eles toca e afina de forma diferente. Os métodos tocar e afinar, únicamente mostran unha mensaxe indicando que o instrumento en cuestion está a tocar ou afinar
   4. O programa vai a constar de un menú de usuario no que se solicitar que escolla o instrumento que desexa empregar, a partir de este punto o instrumento debe de afinarse e posteriormente tocarse. O programa debe empregar un único obxecto instrumento que se inicializará a un instrumento concreto en función da selección do usuario.
2. Nunha aplicación de xestión de recursos humanos dunha empresa, existen distintos **tipos de empregados**. Un empregado vai a ter un nome, que debe de ser accesible polas suas clases fillas, deben de poder calcular o seu salario e mostrar por pantalla a súa función. No caso dun empregado xenerico, o salario será 0, e a función será "Función xenérica". Distinguimos tres tipos de empregados:

   1. **EmpregadoXornadaCompleta:** Ten un salario mensual, no constructor recibe tamen o salario mensual e actualiza os métodos calcular salario e mostrar función, que indica "Xornada Completa: Traballa en un departamento da empresa"
   2. **EmpregadoSustituto:** Ten un salario mensual asignado, pero cobra o 50%. No constructor recibe o salario, e actualiza os métodos calcular salario e mostrar función, que indica "Sustituto: Cubre as baixas dos compañeiros"
   3. **Freelance:** Ten unas horas asignadas e unha tarifa por hora. No constructor recibe ambas, e actualiza os métodos calcular salario e mostrar función, que indica "Autónomo: Participo en proxectos con complexidade elevada"

   Crea unha clase App, na que definas 4 Empregados (os 4 deben de ser de tipo empregado e instanciarse coma : Un empregado xenerico, un empregado sustituto, un empregado a xornada completa e un freelance, e chama os seus métodos para evalualo comportamento.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/exercicios-java/ud4-exercicios/polimorfismo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
