重读java编程思想之向上转型一

来源:互联网 发布:电脑端淘宝详情页尺寸 编辑:程序博客网 时间:2024/05/18 23:12

本文的内容和例子很多都来源于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引用的动作和行为称之为向上转型。







0 0
原创粉丝点击