Significado de android @override
Soy completamente nuevo en android y quiero saber el propósito de la declaración @Override
en Android.
- varias clases en un único archivo físico en android
- Encriptación de Android
- ¿Hacer saltar un sprite cuando el usuario teclea en la pantalla?
- Cómo reducir un archivo .jar para aligerar una aplicación de Android
- No puedo dividir dos números correctamente
- Entrada duplicada: org / appcelerator / titanium / gen / bindings.json en el módulo Android personalizado
- Java.lang.ClassNotFoundException en dalvik.system.BaseDexClassLoader.findClass
- Procesamiento para Android, uso de bibliotecas
- Creación de un libro de ubicación con Android
- Cifrado de cadena de Java
- Cómo cambiar la orientación de bloqueo en Android?
- Cómo personalizar backgroud, color de fondo y color de texto para Toast en android
- Obtener Elementos de JSON Array Android
@Override es una anotación de Java . Indica al compilador que el siguiente método anula un método de su superclase . Por ejemplo, digamos que implemente 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 igual (). El método igual ya está definido en el Objeto de superclase de la Persona. Por lo tanto, la implementación anterior de iguales () es una redefinición de iguales () para Personas. Es decir, la persona sobrescribe es igual a ().
Es legal anular métodos sin anotarlo explícitamente. Entonces, ¿para qué sirve la anotación @Override? ¿Qué pasa si accidentalmente intentó reemplazar equals () de esa manera:
public boolean equals(Person other) { ... }
El caso anterior tiene un error. Querías anular a iguales () pero no lo hiciste. ¿Por qué? Porque el verdadero equals () obtiene un Object como parámetro y su equals () obtiene una Persona como parámetro. El compilador no va a decirle acerca del error porque el compilador no sabe que desea anular. Por lo que el compilador puede decir, que en realidad significaba sobrecarga igual (). Pero si intentaste anular iguales usando la anotación @Override:
@Override public boolean equals(Person other) { ... }
Ahora el compilador sabe que tiene un error. Querías anularlo pero no lo hiciste. Así que la razón para usar la anotación @Override es declarar explícitamente la anulación del método.
Es una anotación Java (no específica de Android). Lo usa para indicar que este método reemplaza un método.
La razón para usarlo es capturar errores cuando se crea un método que se pretende anular un método, pero a través de algún error, 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 desarrolladores a esto:
class Foo { public boolean equals(Foo other) { ...
El autor pretendía que esto reemplazara el método equals
la superclase, pero no (el tipo de parámetro debería ser Object
). El programa compilará bien, pero no usará Foo.equals
como el autor pretendió.
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 guarda algún tiempo de depuración que rastrea el problema.
Es una anotación 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.
@Override
es una annotation
java.
Indica que una declaración de método tiene la intención de anular una declaración de método en una superclase. Si un método se anota con este tipo de anotación pero no anula un método de superclase, se requiere que los compiladores generen un mensaje de error.
Ver también
- When-do-you-use-javas-override-anotación-y-por qué
Ejemplo:
class Parent{ public void foo(){ } } class Child extends Parent{ //compile perfect ! @Override public void foo(){ } //will show compile time error message here as it is not being overridden @Override public void foo(int i){ } }
Es una anotación en Java. Marca que el método está destinado a anular un método en una superclase.
Vea este StackOverflow anterior Pregunta:
Uso de Android @Override
Esa es una anotación Java especial reservada para el compilador que denota que está reemplazando un método de superclase.
- Reglas de conexión de socket persistente de Android
- Sincronización del proyecto de Android Studio con los archivos de Gradle