Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 26.12.2016
Сообщений: 24
1

Интерфейсы: что такое @Override?

26.01.2018, 14:54. Показов 1237. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public interface Instruments {
    final static String key = "До мажор";
    abstract public void play();
}
 
public class Drum implements Instruments {
    public void play(){
        System.out.println("Бум-бац-бац");
    }
}
 
public class Guitar implements Instruments {
 
    @Override
    public void play() {
        System.out.println("Тун-трунь-трунь");
    }
}
 
public class Main {
 
    public static void main(String[] args) {
    // write your code here
        Instruments guitar = new Guitar();
        guitar.play();
        Instruments drum = new Drum();
        drum.play();
    }
}
Какое значение имеет в коде @Override? И к чему приведет его отсутствие? При компиляции оба варианта с и без него сработали без ошибок. На что же влияет @Override?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2018, 14:54
Ответы с готовыми решениями:

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг...

Что означает вот такая запись @Override?
Собственно наткнулся на такую запись и не могу найти, что она означает заранее спасибо

Что такое override?
...И когда это используется?

Что такое абстрактный, виртуальный методы и интерфейсы
Что такое абстрактный, виртуальный методы и интерфейсы ? Вообще ничего не понял по этой теме

4
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
26.01.2018, 15:26 2
Лучший ответ Сообщение было отмечено IgoHz как решение

Решение

Здравствуйте!

Интересный ответ на этот вопрос на stackoverflow

Цитата:
"На самом деле аннотация @Override указывает, что далее мы собираемся переопределять метод базового класса.
При этом, если в базовом классе не окажется метода с аналогичной сигнатурой, то мы получим предупреждение компилятора о том, что хотя мы и собирались что-то переопределить, по факту этого не произошло.

На этом действие аннотации заканчивается.

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

В случае отсутствия данной аннотации и не совпадении сигнатур (в результате ошибки) с методом, который мы собирались переопределять - случится страшное - очень трудноуловимая ошибка, когда вы думаете, что должно бы переопределяться, а по факту имеете отдельный независимый метод, который скорее всего вообще не выполняется. При этом компилятор считает, что с его точки зрения все в порядке - хотите собственный метод в классе-наследнике - нет проблем. И молчит."
1
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
26.01.2018, 19:16 3
Цитата Сообщение от TinSemenova Посмотреть сообщение
очень трудноуловимая ошибка
прям таки очень?
0
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
26.01.2018, 21:06 4
@Override указывает, что этот метод переопределяет метод с аналогичной сигнатурой класса или интерфейса-предка. Если это не так - компилятор выдаст сообщение об ошибке. В таких языках, как Scala, C++ (и наверное многих других) есть аналогичные ключевые слова. Рекомендуется к использованию.
1
0 / 0 / 0
Регистрация: 26.12.2016
Сообщений: 24
29.01.2018, 14:55  [ТС] 5
Спасибо всем за объяснения)
0
29.01.2018, 14:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2018, 14:55
Помогаю со студенческими работами здесь

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru