Я натолкнулся на следующий пункт the advantage of object composition over class inheritance
. Но я часто вижу следующее предложение во многих статьях
В составе объекта функциональность приобретается динамически во время выполнения объектами, собирающими ссылки на другие объекты. Преимущество этого подхода заключается в том, что реализации можно заменить во время выполнения. Это возможно, потому что доступ к объектам осуществляется только через их интерфейсы, поэтому один объект может быть заменен другим до тех пор, пока они имеют один и тот же тип.
Но сомнение может быть наивным, так как я новичок. Как реализация может быть заменена во время выполнения? Если мы напишем новую строку кода, разве нам не нужно компилировать, чтобы отразить изменение? Тогда что означает replacing at runtime
? довольно запутанным.
Или любая другая магия, за сценой происходят события. Может кто-нибудь ответить.