第8章 多态/8.1 再论向上转型
标签: | 作者:易学笔记 更多资料请联系微信或QQ:1776565180 |
- 再论向上转型
- 参照:
- 第7章 复用类/7.7 向上引用
- 第7章 复用类/7.7 向上引用/7.7.1 为什么称为向上引用
- 第7章 复用类/7.7 向上引用/7.7.2 再论组合和继承
- 向上引用本质:对象引用为基类类型,实际为导出类类型
- 源代码例子:
-
package mypackage.music; import mypackage.music.*; import static mypackage.Print.*; public class Music { public static void tune(Instrument i) { i.play(Note.MiDDLE_C); } public static void main(String[] args) { // TODO Auto-generated method stub Wind fluteWind = new Wind(); tune(fluteWind); } }
-
package mypackage.music; import mypackage.music.*; import static mypackage.Print.*; public class Instrument { public void play(Note n) { print("Instrument.paly"); } }
-
package mypackage.music; import mypackage.music.*; import static mypackage.Print.*; public class Wind extends Instrument { public void play(Note n) { print("wind.play:" + n); } }
-
package mypackage.music; public enum Note { MiDDLE_C,C_SHARP,B_FLAT; }
-
- 输出结果:
- 源代码例子: