Если вы хотите понять, зачем вам нужен метод моста, вы лучше поймете, что произойдет без него. Предположим, что не существует мостового метода.
class A<T>{
private T value;
public void set(T newVal){
value=newVal
}
}
class B extends A<String>{
public void set(String newVal){
System.out.println(newVal);
super.set(newVal);
}
}
Обратите внимание, что после стирания метод set
в A стал public void set(Object newVal)
, поскольку на параметре типа T нет ограничений. В классе B нет метода сигнатура которого совпадает с set
в A. Таким образом, переопределение отсутствует. Следовательно, когда произошло что-то подобное:
A a=new B();
a.set("Hello World!");
Полиморфизм здесь не будет работать. Помните, что вам нужно переопределить метод родительского класса в дочернем классе, чтобы вы могли использовать родительский класс var для инициирования полиморфизма.
. Что такое метод моста, он молча переопределяет метод в родительском классе со всей информацией из метод с тем же именем, но с другой подписью. С помощью мостового метода работал полиморфизм. Хотя на первый взгляд вы переопределяете метод родительского класса методом различной подписи.