> 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-e-visibilidade.md).

# Herdanza e visibilidade

1. Nunha aplicación de xestión dun **centro educativo**, vanse a implementar as seguintes clases:
   1. **`Persoa`**, situada no paquete `centro`. Unha persoa se caracteriza polo seguinte:

      1. **dni:** Accesible unicamente polas persoas.
      2. **nome:** Accesible unicamente polas clases que estan no mesmo paquete que Persoa
      3. **idade**: Accesible pola clase persoa e os seus fillos

      A clase persoa conta con un constructor no que se declaran todos os seus atributos, e un constructor baleiro, que debe de chamar o constructor con todos os atributos. Ademais, vanse declarar os seguintes métodos:

      1. Un método con visibilidade por defecto, denominado presentacion(), que vai a mostrar por pantalla unha mensaxe que indica: "O meu nome é *nome*"
      2. Un método con visibilidade protexida, denominado dimeAIdade(), que vai a mostrar por pantalla unha mensaxe que indica: "A miña idade é *idade*"
      3. Getter e Setter para o atributo DNI
   2. **`PAS`**, situada no paquete `centro`, e que herda de Persona. A clase PAS vai a contrar con dous constructores, un baleiro e outro cos tres atributos. Ademais, vanse declarar os seguintes métodos
      1. Un método público **accesoAnome(): String**, que vai a tentar acceder directamente o nome herdado da Persona, en caso de non sexa accesible, devolverá unha mensaxe de "Nome non accesible".
      2. Un método público **accesoAidade(): String**, que vai a tentar acceder directamente o nome herdado da Persona, en caso de non sexa accesible, devolverá unha mensaxe de "Nome non accesible
      3. Un método público **accesoADNI(): String**, que vai a tentar acceder directamente o nome herdado da Persona, en caso de non sexa accesible, realizará o acceso empregando o getter
   3. **`Alumno`**, situada no paquete `estudos`, e que herda de Persona, e que conta cos mesmos dous constructores que a clase PAS.
      1. Un método público **nomeAlumno(): String**, que vai a tentar acceder directamente o nome herdado da Persona, en caso de non sexa accesible, devolverá unha mensaxe de "Nome non accesible".
      2. Un método público **idadeAlumno(): String**, que vai a tentar acceder directamente o nome herdado da Persona, en caso de non sexa accesible, devolverá unha mensaxe de "Nome non accesible"
      3. Un método público **dniAlumno(): String**, que vai a tentar acceder directamente o nome herdado da Persona, en caso de non sexa accesible, realizará o acceso empregando o getter

Pidese:

1. Define a xerarquía anterior nun diagrama UML reflectindo métodos, atributos e visibilidade adecuadas ao solicitado
2. Implemente en Java as clases indicadas. Crea unha clase App que contña un método main no que se instancie un PAS e un Alumno, e se probe a saida dos seus métodos publicos.


---

# 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-e-visibilidade.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.
