> 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/herdanza.md).

# Herdanza

Implementa os seguintes modelos de datos empregando a Herdanza, creando una clase App na que se proben todos os métodos mencionados no enunciado correspondente:

1. Un vehículo e un medio de transporte que se caracteriza por ter unha matrícula, unha velocidade e un número de rodas. Os **vehículos** poden describirse a si mesmos, para o que mostran toda a súa información, e poden acelerar, un incremento en función da velocidade que se indique en cada acelerón. Dentro dos vehículos, distinguimos dous subtipos: os **coches**, que se caracteriza por ter un numero de portas, e por que a aceleración debe realizarse sempre en múltiplos de 10 (En caso de ser inferior, se redondea a un múltiplo de 10. Isto e: Imos a 20 km/h, pídese acelerar 7km/h, entón redondease ao múltiplo de 10 superior, que é incremento de 10km/h). O outro subtipo son as **motos**, que que se caracterizan por ter unha cilindrada e por que a aceleración debe de realizarse sempre en múltiplos de 10
   1. Implementa un diagrama de clases que represente este modelo
   2. Implementa en Java o diagrama de clases definido no punto anterior. Na clase App proba para un obxecto de cada tipo tanto os seus métodos como os herdados.
2. Un **material** é un elemento xestionado dentro de unha biblioteca, que se caracteriza por ter un código, un título, un ano de publicacion en un estado. Estes materiais poden ser prestados, o que cambia o estado de dispoñible a non dispoñible, e deben de poder describirse, devolvendo toda a sua información coma unha cadea. No momento de crear un material, este debe de recibir o codigo, o ano de publicación, sendo o estado por defecto non dispoñible. Dentro dos materiais imos atopar diferentes elementos

   1. **Libros**. Un libro é un material de biblioteca que ademais tén un autor e un número de páxinas. Un libro debe de poder crearse mediante todos os seus atributos, ou mediante código, titulo e autor, deixando o número de páxinas en 100, e o ano de publicación en 2024.
   2. **Revistas**. Unha revista é un material de biblioteca que ademáis tén un número de edición e un mes de publicación. Unha revista debe de poder crearse con todos os seus atributos ou con código, título e numero de publicación, establecendo por defecto o mes de publicación en xaneiro, e o ano de publicación en 2025.
   3. **DVD.** Unha DVD é un material de biblioteca que ademáis tén unha duración en minutos e un director. Os DVDs podense reproducir, cando se reproduce, cada 5 minutos (contador desde o minuto 1 ata o minuto final), deberá ir mostrando o minuto de reproduccion e o procentaxe de reproduccion (minuto actual/minutos totales). Ao rematar a reproducción mostra a mensaxe de reproducción rematada.

   Pídese:

   1. Implementa un diagrama de clases que represente este modelo
   2. Implementa en Java o diagrama de clases definido no punto anterior. Na clase App proba para un obxecto de cada tipo tanto os seus métodos como os herdados.


---

# 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/herdanza.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.
