Задать вопрос
@iskateli

Для всех методов Java используется механизм позднего связывания?

Подскажите пожалуйста, вот сейчас читаю Брюс Эккель - Философия Java, написано (241 стр.) что в Java
Теперь, когда вы знаете, что связывание всех методов в Java осуществляется поли­морфно, через позднее связывание, вы можете писать код для базового класса, не
сомневаясь в том, что для всех производных классов он также будет работать верно.

В оригинале :
Once you know that all method binding in Java happens polymorphically via late binding, you can write your code to talk to the base class and know that all the derived-class cases will work correctly using the same code.

Как правильно перевести первую часть предложения? Потому что переведённая часть предложения
связывание всех методов в Java осуществляется поли­морфно, через позднее связывание

не соответствует действительности: final методы, статические методы, методы вызываемые через super используют механизм раннего связывания.
Я бы скорее всего вот так же ошибочно перевёл:
Как только вы узнаете, что все связывание методов в Java происходит полиморфно с помощью позднего связывания

Но можно вот так перевести:
Связывание всех полиморфных методов происходит с помощью позднего связывания.
что сильно меняет смысл фразы, теперь это относится не ко всем методам Java, а только к методам участвующим в полиморфизме.
Подскажите пожалуйста, что же действительно написано в оригинале.
  • Вопрос задан
  • 270 просмотров
Подписаться 1 Средний Комментировать
Ответ пользователя Сергей Горностаев К ответам на вопрос (2)
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Надо понимать, что "Философия Java" - это учебник среднего уровня, поэтому Эккель либо упростил для понятности, либо написал это в контексте обсуждения, исключающем статические методы и вызовы методов суперкласса.
Ответ написан