Saltar al contenido

El significado de @override en Android Studio

Solución:

@Override es una anotación de Java. Le dice al compilador que el siguiente método anula un método de su superclase. Por ejemplo, digamos que implementas una clase Person.

public class Person {
   public final String firstName;
   public final String lastName;

   //some methods

   @Override public boolean equals(Object other) {
      ...
   }
}

La clase de persona tiene un método equals (). El método equals ya está definido en la superclase Object de Person. Por lo tanto, la implementación anterior de iguales () es una redefinición de iguales () para Personas. Es decir, Person anula equals ().

Es legal anular métodos sin anotarlo explícitamente. Entonces, ¿para qué sirve la anotación @Override? ¿Qué pasa si accidentalmente intenta anular equals () de esa manera?

public boolean equals(Person other) {
   ...
}

El caso anterior tiene un error. Querías anular equals () pero no lo hiciste. ¿Por qué? porque el igual real () obtiene un Objeto como parámetro y su igual () obtiene una Persona como parámetro. El compilador no le informará sobre el error porque el compilador no sabe que desea anularlo. Por lo que el compilador puede decir, en realidad pretendía sobrecargar equals (). Pero si intentó anular iguales utilizando la anotación @Override:

@Override public boolean equals(Person other) {
   ...
}

Ahora el compilador sabe que tiene un error. Querías anular pero no lo hiciste. Entonces, la razón para usar la anotación @Override es declarar explícitamente la anulación del método.

Es una anotación de Java (no específica de Android). Lo usa para significar que este método anule un método.

La razón para usarlo es detectar errores cuando crea un método que desea anular un método, pero a través de algún error, lo hace. no, por ejemplo, error tipográfico en el nombre del método, un error en la firma del método, etc. Por ejemplo, a veces los desarrolladores de esto:

class Foo { 
    public boolean equals(Foo other) {
       ...

El autor pretendía que esto anulara la superclase ‘ equals método, pero no lo hace (el tipo de parámetro debe ser Object). El programa se compilará bien, pero no utilizará Foo.equals como pretendía el autor.

class Foo {
    @Override
    public boolean equals(Foo other) {
       ...

La compilación ahora dará un error porque el método no anula otro método. Esto señala el problema temprano y, con suerte, ahorra algo de tiempo de depuración al rastrear el problema.

Es una anotación de Java que le dice al compilador que el método está destinado a anular un método de la superclase. No es estrictamente necesario, pero ayuda a detectar errores en tiempo de compilación.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *