Зачем нам нужно динамическое связывание c (Java)? - PullRequest
0 голосов
/ 13 февраля 2020

Я прочитал много статей о разнице между статическим c связыванием и динамическим c связыванием в Java, но ни одна из них на самом деле не говорит о том, зачем нам нужно динамическое c связывание. Почему какой-то код должен быть связан только во время выполнения? Почему нельзя связать весь код во время компиляции?

Я понимаю концепции переопределения методов и полиморфизма, но я не понимаю, почему компилятор (во время компиляции) не сможет заметить, что объект относится к подклассу и должен просто использовать этот метод.

1 Ответ

1 голос
/ 13 февраля 2020

Dynami c привязка позволяет одной и той же подпрограмме (функции, методу) действовать на разные типы. Необходимо придерживаться Liskov's Substitute Principal

например,

Set<Employee> fmList = getEmployees();

Вы можете легко заменить реализацию getEmployees() для возврата указанного c типа Set.

https://en.wikipedia.org/wiki/SOLID

Как думать о полиморфизме с подтипом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...