Задание выполнила интуитивно как-то, с первого раза, но решив, не поняла, почему именно так и есть ли другие способы? Знаю, что все мы тут очень умные и на 13 уровне с такими вопросами делать нечего, но просто, пожалуйста, объясните, почему именно так и зачем нам вообще давались другие варианты? Что-то подсказывает, что мы могли бы их и иначе как-то объявлять, но не знаю, не знаю...
interface SimpleObject {
String NAME = "SimpleObject";
void onPress();
}
interface Button extends SimpleObject {
final String NAME = "Submit";
public void onPress();
String onPress(Object o);
}
Marina
16 уровень
Объясните, почему именно так
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Егор ГераськинExpert
4 февраля 2020, 21:52решение
Не ищи глубокого смысла там, где его нет. Просто есть в Яве правила наследования интерфейсов, их надо усвоить в том числе и с помощью этой задачи.
Другие варианты давались для того, чтобы их удалить и оставить только этот - верный.
У методов в Яве главное сигнатуры - название функции + последовательность типов аргументов.
Сигнатура onPress(Object o) отличается от onPress() , следовательно это перегрузка метода - объявление нового метода с тем же именем, но другим набором аргументов, а не переопределение. То есть мы не переопределяем метод от наследуемого класса SimpleObject, а добавляем к нему ещё один.
+9
Marina
5 февраля 2020, 08:02
спасибо за инфу (кстати, я тож изначально из Саратова,так что привет, земляк)
0
Егор ГераськинExpert
5 февраля 2020, 08:07
👊
0
Илья Ненашев
30 сентября 2020, 19:23
молодец,все красиво написал,по теме интересно и познавательно😊
0