Есть ли какая-то конкретная причина, по которой Java использует раннее связывание для перегруженных методов? Нельзя ли использовать для этого позднюю привязку?
Пример:
public class SomeClass {
public void doSomething(Integer i) {
System.out.println("INTEGER");
}
public void doSomething(Object o) {
System.out.println("OBJECT");
}
public static void main (String[] args) {
Object i = new Integer(2);
Object o = new Object();
SomeClass sc = new SomeClass();
sc.doSomething(i);
sc.doSomething(o);
}
}
Отпечатки: ОБЪЕКТ ОБЪЕКТА
Я бы предпочел: INTEGER OBJECT