zoukankan      html  css  js  c++  java
  • JAVA向上转型和向下转型

      最近在看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,但是向上转型就免去了这种麻烦。

     

  • 相关阅读:
    内存管理工具
    c语言目录操作总结
    重写strstr、strcpy、memcpy、memset、atof算法
    统计编码量工具
    hdu4348
    bzoj4358: permu
    bzoj2658: [Zjoi2012]小蓝的好友(mrx)
    bzoj2657: [Zjoi2012]旅游(journey)
    bzoj3583: 杰杰的女性朋友
    bzoj3673 bzoj3674可持久化并查集
  • 原文地址:https://www.cnblogs.com/xpang0/p/7468919.html
Copyright © 2011-2022 走看看