码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA向上转型和向下转型

时间:2017-09-03 11:11:13      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:images   关系   sys   tostring   size   进度   xtend   .com   ext   

  最近在看JAVA编程思想,之前学的JAVA只能算是皮毛,大概看到第七章继承时出现了个名词-向上转型。所以就来讨论下向上和向下转型的内容和意义,内容会随着我看书的进度一直更新的。

  向上转型

  按照JAVA编程思想中的表述,“为新类提供方法”并不是继承技术中最重要的方面,最重要的是表现新类和基类之间的关系。概况为 新类是现有类的一种类型。

   贴段书上的代码,稍加改动

class Instrument{ //父类
    public void play(){};
    static void tune(Instrument i){
        i.play();
        System.out.println(i.toString()+".play()");
    }
}
public class Wind extends Instrument{ //子类继承父类
    public static void main(String[] args) {
        Wind flute=new Wind();
        Instrument.tune(flute);
    }
}

//output:

Wind@15db9742.play()


 

 

 

   技术分享注意,Instrument.tune(flute),调用的是一个wind引用,这时,导出类也就转换成基类。

  具体意义个人理解比如上文贴的代码,父类Instrument已经有了tune方法,但是父类tune方法中调用的是Instrument对象。这时如果子类Wind类想使用tune方法需要重写tune,但是向上转型就免去了这种麻烦。

 

JAVA向上转型和向下转型

标签:images   关系   sys   tostring   size   进度   xtend   .com   ext   

原文地址:http://www.cnblogs.com/vincentme/p/7468919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!