Uso de Android @Override

(Novato a Java, viejo individuo del tiempo C #.)

He notado mucho del uso de @Override en código de ejemplo de Android. Pensé que todos los métodos de Java eran por defecto "virtual"?

¿Qué hace entonces @Override ?

Ejemplo:

 private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } 

Es una anotación que puede utilizar para decirle al compilador ya su IDE que tiene la intención de que el método que tiene esa anotación para ser una anulación de un método de clase super. Ellos tienen advertencia / errores en caso de que cometan errores, por ejemplo, si tiene la intención de anular un método, pero mal escrito, si la anotación está allí el IDE o el compilador le dirá que no es de hecho el método superclase y por lo tanto Puede determinar por qué y corregir la falta de ortografía.

Esto es lo más importante para las aplicaciones y actividades de Android, por ejemplo, donde todas las llamadas se basarán en el ciclo de vida de la actividad; si no anulan correctamente los métodos del ciclo de vida, nunca serán llamados por el framework. Todo se compilará bien, pero su aplicación no funcionará de la forma en que lo desea. Si agrega la anotación, obtendrá un error.

Este código para el principiante que realmente quiere entender sobre el proceso @Override , esto le ayudará! (Recuerde el concepto de herencia de Java.)

Por ejemplo, la clase Fish podría tener dos subclases: FreshwaterFish y SaltwaterFish .

Estas subclases tendrían todas las características de la clase Fish , pero podrían personalizar aún más los objetos a través de nuevos atributos y comportamientos o comportamientos modificados de la clase padre Fish . Por ejemplo, la clase de FreshwaterFish podría incluir información sobre el tipo de ambiente de agua dulce vivido (por ejemplo, río, lago, estanque o charco).

De forma similar, la clase SaltwaterFish podría personalizar el método makeBabyFish() para que el pez coma su pareja después de criar (como se define en la superclase) usando el mecanismo de override, como esto:

 public class SaltwaterFish extends Fish { @Override public void makeBabyFish(Fish fishSpouse, int numBabies) { // call parent method super.makeBabyFish(fishSpouse, numBabies); // eat mate eat(fishSpouse); } } 

La anulación de anulación es sólo una sugerencia para el compilador que desea sobrescribir una determinada función. El compilador comprobará las clases de los padres y las interfaces si la función existe allí. Si no, obtendrá un error de compilación.

Es básicamente un mecanismo de seguridad.

Para referencia, vea este artículo (la sustitución se explica en algún lugar en el medio)

Override se utiliza sobre todo en caso de definir un método. Elverriding es similar a la forma de su significado.

Voy a tratar de explicar de manera muy cojo. Supongamos si tiene Oncreate () Método ya definido y tiene las propiedades asociadas con él. Y Una vez más cuando llama al método Oncreate () en su código para determinado objeto, el código que ha escrito ahora … anulará la propiedad formalmente definida o propiedad heredada de Oncreate () para su aplicación.

  • Detenga Android Studio con la ayuda de la biblioteca
  • Iniciar mi aplicación Phonegap a una hora específica (despertador)
  • Confundido acerca de la sincronización de varias tablas con el adaptador de sincronización y el proveedor de contenido
  • AndroidDebugKey Keystore fue manipulado, o la contraseña era incorrecta
  • Insertar una marca de tiempo en la base de datos a través de ContentValues
  • Subíndice y superíndice una cadena en Android
  • Importaciones no resueltas de Google Drive
  • ¿Cómo encuentro los servidores DNS en Android desde un programa Java?
  • No se puede crear una carpeta en el almacenamiento externo en android
  • Hacer personalizado Parcelable que contiene byte array
  • Cómo capturar el evento de volver a una actividad después de golpear de nuevo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.