当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

java覆盖与过载[Java编程]

赞助商链接



  本文“java覆盖与过载[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
目前让我们用差别的目光来看看本章的头一个例子.在下面这个程序中,办法play()的接口会在被覆盖的历程中发生改变.这意味着我们实际并没有“覆盖”办法,而是使其“过载”.编译器答应我们对办法举行过载处理,使其不报告出错.但这种行为大概并非我们所但愿的.下面是这个例子:
//: WindError.java 
// Accidentally changing the interface

class NoteX {
  public static final int
    MIDDLE_C = 0, C_SHARP = 1, C_FLAT = 2;
}

class InstrumentX {
  public void play(int NoteX) {
    System.out.println("InstrumentX.play()");
  }
}

class WindX extends InstrumentX {
  // OOPS! Changes the method interface:
  public void play(NoteX n) {
    System.out.println("WindX.play(NoteX n)");
  }
}

public class WindError {
  public static void tune(InstrumentX i) {
    // ...
    i.play(NoteX.MIDDLE_C);
  }
  public static void main(String[] args) {
    WindX flute = new WindX();
    tune(flute); // Not the desired behavior!
  }
} ///:~
这里还向大家引入了另一个易于混合的概念.在InstrumentX中,play()办法采取了一个int(整数)数值,它的标识符是NoteX.也就是说,即便NoteX是一个类名,也可以把它作为一个标识符利用,编译器不会报告出错.但在WindX中,play()采取一个NoteX句柄,它有一个标识符n.即便我们利用“play(NoteX NoteX)”,编译器也不会报告错误.这样一来,看起来就象是程序员有意覆盖play()的功效,但对办法的范例定义却略微有些不切当.但是,编译器此时假定的是程序员有意举行“过载”,而非“覆盖”.请细心领会这两个术语的辨别.“过载”是指同一样东西在差别的地方具有多种含义;而“覆盖”是指它随时随地都只有一种含义,只是原先的含义完好被后来的含义代替了.请注意假如服从尺度的Java命名标准,自变量标识符就应当是noteX,这样可把它与类名区脱离.
在tune中,“InstrumentX i”会发出play()消息,同时将某个NoteX成员作为自变量利用(MIDDLE_C).由于NoteX包含了int定义,过载的play()办法的int版本会得到调用.同时由于它还没有被“覆盖”,所以会利用底子类版本.
输出是:
InstrumentX.play()
  以上是“java覆盖与过载[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .