麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

多形性的覆蓋與過載

2019-11-18 13:21:55
字體:
來源:轉載
供稿:網友

  現在讓我們用不同的眼光來看看本章的頭一個例子。在下面這個程序中,方法play()的接口會在被覆蓋的過程中發(fā)生變化。這意味著我們實際并沒有“覆蓋”方法,而是使其“過載”。編譯器答應我們對方法進行過載處理,使其不報告出錯。但這種行為可能并不是我們所希望的。下面是這個例子:
  
  //: 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.   }
  }
  
  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()的功能,但對方法的類型定義卻稍微有些不確切。然而,編譯器此時假定的是程序員有意進行“過載”,而非“覆蓋”。請仔細體會這兩個術語的區(qū)別?!斑^載”是指同一樣東西在不同的地方具有多種含義;而“覆蓋”是指它隨時隨地都只有一種含義,只是原先的含義完全被后來的含義取代了。請注重假如遵守標準的Java命名規(guī)范,自變量標識符就應該是noteX,這樣可把它與類名區(qū)分開。
  
  在tune中,“InstrumentX i”會發(fā)出play()消息,同時將某個NoteX成員作為自變量使用(MIDDLE_C)。由于NoteX包含了int定義,過載的play()方法的int版本會得到調用。同時由于它尚未被“覆蓋”,所以會使用基礎類版本。
  
  輸出是:
  
  InstrumentX.play()

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一级淫片在线观看 | 亚洲国产视频网 | 国产美女视频一区二区三区 | 原来神马影院手机版免费 | 看毛片免费 | 欧美成年视频 | 黄色三级三级三级 | 亚洲人成在线播放网站 | 天天躁狠狠躁夜躁2020挡不住 | 在线观看一区二区三区四区 | 亚洲一区二区三区精品在线观看 | 操操插插 | 国产毛片毛片 | 精品国产一区二区三区天美传媒 | 特一级黄色毛片 | 久久国产在线观看 | 日日狠狠久久偷偷四色综合免费 | 福利在线免费视频 | 久久99精品久久久久久国产越南 | 操嫩草| 免费人成在线播放 | av国产片 | 天天看天天摸天天操 | 国产精品亚洲欧美一级在线 | 香蕉视频h| aaaaaaa毛片 | 欧美aaaaaaaa | 久久777国产线看观看精品 | 欧美成人免费在线视频 | 亚洲国产综合在线观看 | 国产精品久久久久久久久久东京 | 精品国产91久久久久久浪潮蜜月 | 国产69精品99久久久久久宅男 | 久久综合一区二区 | 毛片在线视频观看 | 男人的天堂视频网站 | 成人综合免费视频 | 久久里面有精品 | 精品国产专区 | 国产女厕一区二区三区在线视 | 精品一区二区三区日本 |