Los nuevos programadores de Java quedaron desconcertados con estas tres reglas de anulación de métodos. Simplifiquemos las reglas. Clase Padre{ (Regla 1. Especificador de acceso) protegido (Regla 2. Tipo de retorno) Número dothework() throws (Regla 3.Excepción) Excepción { } } Clase secundaria extiende Padre{ (1. especificador) público (2. Tipo de retorno) Integer dothework() throws (3.Exception) IOException { } } Si sabes cómo funciona la posición en (1), (2) y (3), tu concepto primordial quedará 100% claro.
1. Especificador de acceso : el especificador de método de clase secundaria debe ser mayor o igual que el especificador de método de clase principal. El orden del especificador es (de mayor a menor) público > protegido > predeterminado > privado. Tenga en cuenta que el método privado no se puede anular.
2. Tipo de retorno : ahora Java admite el tipo de retorno covariante. En el tipo de retorno del método secundario, debe ser el mismo o el tipo secundario del tipo de retorno del método principal. Cuando se utilizan genéricos aquí, a veces resulta desconcertante para el nuevo desarrollador. Se debe estudiar y aclarar el concepto de tipo de retorno covariante que utiliza genéricos.
3.Excepción Si el método de la clase secundaria genera una excepción marcada, el método de la clase principal debe generar el mismo tipo de excepción marcada o la de los padres.
Tenga en cuenta que, en caso de excepción no marcada, la regla no se aplica. Por lo tanto, debe conocer el tipo de excepción marcada y no marcada.
GO TO FULL VERSION