Значение android @override

Я совершенно новичок в Android и хочу узнать цель оператора @Override в Android.

Solutions Collecting From Web of "Значение android @override"

@Override – аннотация Java . Он сообщает компилятору, что следующий метод переопределяет метод его суперкласса . Например, скажем, вы реализуете класс Person.

 public class Person { public final String firstName; public final String lastName; //some methods @Override public boolean equals(Object other) { ... } } 

Класс person имеет метод equals (). Метод equals уже определен в объекте суперкласса Person. Поэтому приведенная выше реализация equals () является переопределением равных () для Лица. То есть, Person переопределяет equals ().

Законно переопределять методы без явной аннотации. Итак, что такое примечание @Override? Что, если вы случайно попытались переопределить equals () следующим образом:

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

В приведенном выше случае есть ошибка. Вы хотели переопределить equals (), но вы этого не сделали. Зачем? Потому что real equals () получает объект как параметр, а ваш equals () получает Person как параметр. Компилятор не собирается рассказывать вам об ошибке, потому что компилятор не знает, что вы хотите переопределить. Насколько компилятор может сказать, вы на самом деле означали перегрузку equals (). Но если вы попытались переопределить значения, используя аннотацию @Override:

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

Теперь компилятор знает, что у вас есть ошибка. Вы хотели переопределить, но вы этого не сделали. Поэтому причина использования аннотации @Override заключается в явном объявлении переопределения метода.

Его аннотация Java (не для Android). Вы используете его для обозначения этого метода для переопределения метода.

Причина его использования заключается в том, чтобы ловить ошибки при создании метода, который вы намереваетесь переопределить, но с некоторой ошибкой это не так , например, опечатка в имени метода, ошибка в сигнатуре метода и т. Д. Например, Иногда разработчики к этому:

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

Автор намеревался это переопределить метод equals суперкадра, но это не так (тип параметра должен быть Object ). Программа будет компилироваться отлично, но не будет использовать Foo.equals как предполагал автор.

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

Теперь компиляция даст ошибку, потому что метод не переопределяет другой метод. Это указывает на проблему раньше и, надеюсь, экономит время отладки, отслеживая проблему.

Это аннотация Java, которая сообщает компилятору, что метод предназначен для переопределения метода из суперкласса. Это не обязательно, но помогает ловить ошибки во время компиляции.

@Overrideannotation java.

Указывает, что объявление метода предназначено для переопределения объявления метода в суперклассе. Если метод аннотируется с этим типом аннотации, но не переопределяет метод суперкласса, компиляторы должны генерировать сообщение об ошибке.

Также см

  • когда- до -вы-потребительные Javas-переопределение-аннотаций-и-почему

Пример:

 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){ } } 

Это аннотация в Java. Он отмечает, что метод предназначен для переопределения метода в суперклассе.

См. Предыдущий вопрос StackOverflow:

Использование Android @Override

Это специальная компиляторная зарезервированная аннотация Java, которая означает, что вы переопределяете метод суперкласса.