Я не могу понять, зачем нам динамическое связывание (позднее связывание). Допустим, у нас есть класс A и класс B, и давайте скажем, что класс B расширяет класс A, теперь мы можем писать такие вещи, как «A var = new B ();»Теперь предположим, что оба класса содержат метод с одинаковой сигнатурой, например, метод "cry ()", теперь я могу написать что-то вроде "var.cry ()", теперь основанный исключительно на типе компилятора "var" не может связать праваМетод для экземпляра "var" во время компиляции, но компилятор должен проверить, допустимо ли следующее утверждение: "A var = new B ();"теперь, поскольку он должен проверить, является ли это утверждение допустимым, он должен знать, что «var» будет ссылаться на экземпляр класса B, теперь, если он это знает, компилятор должен иметь возможность связывать правильный метод во время компиляции?