企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## [转机](https://lingcoder.gitee.io/onjava8/#/book/09-Polymorphism?id=%e8%bd%ac%e6%9c%ba) 运行程序后会看到**Music.java**的难点。**Wind.play()**的输出结果正是我们期望的,然而它看起来似乎不应该得出这样的结果。观察`tune()`方法: ~~~ public static void tune(Instrument i) { // ... i.play(Note.MIDDLE_C); } ~~~ 它接受一个**Instrument**引用。那么编译器是如何知道这里的**Instrument**引用指向的是**Wind**,而不是**Brass**或**Stringed**呢?编译器无法得知。为了深入理解这个问题,有必要研究一下*绑定*这个主题。