本文的内容和例子很多都来源于java编程思想
package com.scujcc.base.seven;
/**
* <b>修改记录:</b>
* <p>
* <li>
*
* </li>
* </p>
*
* <b>类说明:</b>
* <p>
*
* </p>
*/
public class Wind extends Instrument{
/**
* <b>方法说明:</b>
* <ul>
*
* </ul>
* @param args
*/
public static void main(String[] args) {
Wind f = new Wind();
Instrument.tune(f);
}
}
class Instrument{
public void play(){
System.out.println("play");
}
}
// console: play
从上面的例子可以看出一个很有趣的东西,Instrument里面有的play(),子类wnid()也具备,特别是tune()本身可以接受Instrument引用,但是在Wind.main()中传给tune()的确实一个Wind引用,由于java的检查机制,竟然通过了,那么除非java检查机制默认Wind对象同样也是一种特殊的Instrument对象,且不存在任何tune()方法是可以通过Instrument来调用,同时又不存在Wind对象之中,而这种程序可以对Instrument和它所有的导出类起作用,我们把Wind对象引用转换成了Instrument引用的动作和行为称之为向上转型。