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

上溯造型的问题[Java编程]

赞助商链接



  本文“上溯造型的问题[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在第6章,大家已知道可将一个对象作为它自己的范例利用,大概作为它的底子范例的一个对象利用.获得一个对象句柄,并将其作为底子范例句柄利用的行为就叫作“上溯造型”——因为担当树的画法是底子类位于最上方.
但这样做也会碰到一个问题,以下例所示(若履行这个程序碰到麻烦,请参考第3章的3.1.2小节“赋值”):

//: Music.java 
// Inheritance & upcasting
package c07;

class Note {
  private int value;
  private Note(int val) { value = val; }
  public static final Note
    middleC = new Note(0), 
    cSharp = new Note(1),
    cFlat = new Note(2);
} // Etc.

class Instrument {
  public void play(Note n) {
    System.out.println("Instrument.play()");
  }
}

// Wind objects are instruments
// because they have the same interface:
class Wind extends Instrument {
  // Redefine interface method:
  public void play(Note n) {
    System.out.println("Wind.play()");
  }
}

public class Music {
  public static void tune(Instrument i) {
    // ...
    i.play(Note.middleC);
  }
  public static void main(String[] args) {
    Wind flute = new Wind();
    tune(flute); // Upcasting
  }
} ///:~
此中,办法Music.tune()接纳一个Instrument句柄,同时也接纳从Instrument衍生出来的全部东西.当一个Wind句柄传送给tune()的时刻,就会呈现这种情形.此时没有造型的必要.这样做是可以承受的;Instrument里的接口必须存在于Wind中,因为Wind是从Instrument里担当得到的.从Wind向Instrument的上溯造型大概“缩小”那个接口,但不大概把它变得比Instrument的完好接口还要小.
  以上是“上溯造型的问题[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 内部类和上溯造型
  • 上溯造型的问题
  • 为什么要上溯造型
  • java的上溯造型
  • 什么是上溯造型(java)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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