Для чего конкретно в данном примере используются 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();
}
}