Философия Java

         

Скручивание


Сложности с Music.java можно видеть при запуске этой программы. Вывод в Wind.play( ). Причем это почти желаемый вывод, но здесь не должно играть роли, как это будет проигрываться. Посмотрите на метод tune( ):

public static void tune(Instrument i) { // ...

i.play(Note.MIDDLE_C); }

Метод воспринимает ссылку на Instrument. А как компилятору узнать, что в действительности эта ссылка на Instrument

указывает на Wind в этом случае и не указывает на Brass или Stringed? Компилятор не может. Для того, что бы поглубже разобраться в этом затруднении неплохо было бы разобраться и в самой сущности связывания.



Содержание раздела