package com.javarush.task.task08.task0803;
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws Exception {
String[] cats = new String[]{"васька", "мурка", "дымка", "рыжик", "серый", "снежок", "босс", "борис", "визя", "гарфи"};
Map<String, Cat> map = addCatsToMap(cats);
for (Map.Entry<String, Cat> pair : map.entrySet()) {
System.out.println(pair.getKey() + " - " + pair.getValue());
}
}
public static Map<String, Cat> addCatsToMap(String[] cats) {
Map<String, Cat> map = new HashMap<String, Cat>();
for (int i = 0; i < cats.length; i++) {
map.put(cats[i], new Cat(cats[i]));
}
return map;
}
public static class Cat {
String name;
public Cat(String name) {
this.name = name;
}
@Override
public String toString() {
return name != null ? name.toUpperCase() : null;
}
}
}
Сергей
20 уровень
1. Что делает @Override?
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sergey
24 октября 2019, 12:49
переопределяет существующий метод
0
hidden #598481
24 октября 2019, 12:50
аннотация не переопределяет сама по себе, метод переопределится и без аннотации.
она делает пометку для программиста.
+3
Сергей
24 октября 2019, 12:59
а зачем его переопределять?
0
Ksenia Volkova Java Developer в DXC Master
24 октября 2019, 13:02
Если не переопределить, будет применен метод, унаследованный от "родительского" класса Object. А он делает не совсем то, что нам нужно в данном случае.
Можешь убрать переопределенный метод из своего кода и посмотреть, что получится.
0
hidden #598481
24 октября 2019, 13:06
Ну чтобы объяснить, надо сначала рассказать про наследование. Если в двух словах, то классы могут наследовать поведение (неприватные поля и методы) от других классов. Если ты хочешь, чтобы в рамках дочернего класса какой-то метод работал по-другому, ты его переопределяешь в дочернем классе, закладываешь в этот метод нужную логику.
Поскольку все классы наследуются от Object, то все имеют доступ к его методам и могут их переопределять по-своему.
0
2DaMoon
21 июля 2021, 15:16
большое спасибо) давно интересовало, почему же переменные не переопределяются, а методы переопределяются
0
hidden #598481
24 октября 2019, 12:48
это аннотация
0