Защо претоварването по принцип не се осъществява по време на изпълнение?
Какви са трудностите / последиците при разрешаването на език да избира претоварени реализации по време на изпълнение въз основа на действителния (недеклариран) тип параметър?
Отговори:
0 за отговор № 1Претоварването трябва да бъде разрешено по време на компилиране, тъй като може да е нееднозначно да се разреши изпращането на метода по време на изпълнение.
Представете си следния фрагмент (валидна и компилируема Java програма):
public class Test {
public static void main(String[] args) {
Object object = new Clazz();
method(object);
}
static class Clazz implements Interface1, Interface2 {}
interface Interface1 {}
interface Interface2 {}
private static void method(Object o) {}
private static void method(Interface1 i) {}
private static void method(Interface2 i) {}
}
Ако претоварването наистина ще бъде разрешено по време на изпълнение, ще бъде амбициозно кой метод да се обади Clazz
реализира и двата интерфейса.