Задать вопрос
evgeniy8705
@evgeniy8705
Повелитель вселенной

В чем преимущество super, конкретно в данном случае (Обобщения)?

Для чего конкретно в данном примере используются super в методах класса class GenericReadAndWrite {}
Так и не понял. Как по мне, то и без super, все также работает.
Объясните в чем суть использования именно в этом примере.

Иерархия классов животных используемых для данного примера: Иерархия классов животных

public class App {
    public static void main(String[] args) {
        Generic1<Cat> g1 = new Generic1<>();

        GenericReadAndWrite.f1(g1, new Cat());
        GenericReadAndWrite.f1(g1, new Pet()); // Error

        // --------------------------------------------------

        Dog cat = GenericReadAndWrite.f2(new Generic2<Pug>());
    }
}


class Generic1<T> {
    public void set(T arg) {}

}

class Generic2<T> {
    public T get() {
        return null;
    }
}

class GenericReadAndWrite {
    static <T> void f1(Generic1<? super T> obj, T item) {
        obj.set(item);
    }

    static <T> T f2(Generic2<? extends T> obj) {
        return obj.get();
    }
}
  • Вопрос задан
  • 336 просмотров
Подписаться 4 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 1
dummyman
@dummyman
диссидент-схизматик
Ну смотрите, на примере животных. Если в классе котов определить метод скормиться кому-то, например собаке или волку, или коту по-крупнее. Не?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы