天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

運(yùn)行時(shí)實(shí)現(xiàn)Java的多態(tài)性

運(yùn)行時(shí)多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)代碼重用的一個(gè)最強(qiáng)大機(jī)制,動(dòng)態(tài)性的概念也可以被說(shuō)成“一個(gè)接口,多個(gè)方法”。Java實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的基礎(chǔ)是動(dòng)態(tài)方法調(diào)度,它是一種在運(yùn)行時(shí)而不是在編譯期調(diào)用重載方法的機(jī)制,下面就繼承和接口實(shí)現(xiàn)兩方面談?wù)?a href=/itjie/Javajishu/ target=_blank class=infotextkey>Java運(yùn)行時(shí)多態(tài)性的實(shí)現(xiàn)。

  一、通過(guò)繼承中超類(lèi)對(duì)象引用變量引用子類(lèi)對(duì)象來(lái)實(shí)現(xiàn)

  舉例說(shuō)明:

  //定義超類(lèi)superA
  class superA
  {
  int i = 100;
  void fun()
  {
  System.out.println(“This is superA”);
  }
  }
  //定義superA的子類(lèi)subB
  class subB extends superA
  {
  int m = 1;
  void fun()
  {
  System.out.println(“This is subB”);
  }
  }
  //定義superA的子類(lèi)subC
  class subC extends superA
  {
  int n = 1;
  void fun()
  {
  System.out.println(“This is subC”);
  }
  }

  class Test
  {
  public static void main(String[] args)
  {
  superA a;
  subB b = new subB();
  subC c = new subC();
  a=b;
  a.fun(); (1)
  a=c;
  a.fun(); (2)
  }
  }

  運(yùn)行結(jié)果為:

  This is subB
  This is subC

  上述代碼中subB和subC是超類(lèi)superA的子類(lèi),我們?cè)陬?lèi)Test中聲明了3個(gè)引用變量a, b, c,通過(guò)將子類(lèi)對(duì)象引用賦值給超類(lèi)對(duì)象引用變量來(lái)實(shí)現(xiàn)動(dòng)態(tài)方法調(diào)用。也許有人會(huì)問(wèn):“為什么(1)和(2)不輸出:This is superA”。Java 的這種機(jī)制遵循一個(gè)原則:當(dāng)超類(lèi)對(duì)象引用變量引用子類(lèi)對(duì)象時(shí),被引用對(duì)象的類(lèi)型而不是引用變量的類(lèi)型決定了調(diào)用誰(shuí)的成員方法,但是這個(gè)被調(diào)用的方法必須是在超類(lèi)中定義過(guò)的,也就是說(shuō)被子類(lèi)覆蓋的方法。

  所以,不要被上例中(1)和(2)所迷惑,雖然寫(xiě)成a.fun(),但是由于(1)中的a被b賦值,指向了子類(lèi)subB的一個(gè)實(shí)例,因而(1)所調(diào)用的fun()實(shí)際上是子類(lèi)subB的成員方法fun(),它覆蓋了超類(lèi)superA的成員方法fun();同樣(2)調(diào)用的是子類(lèi)subC的成員方法fun()。

  另外,如果子類(lèi)繼承的超類(lèi)是一個(gè)抽象類(lèi),雖然抽象類(lèi)不能通過(guò)new操作符實(shí)例化,但是可以創(chuàng)建抽象類(lèi)的對(duì)象引用指向子類(lèi)對(duì)象,以實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性。具體的實(shí)現(xiàn)方法同上例。

  不過(guò),抽象類(lèi)的子類(lèi)必須覆蓋實(shí)現(xiàn)超類(lèi)中的所有的抽象方法,否則子類(lèi)必須被abstract修飾符修飾,當(dāng)然也就不能被實(shí)例化了。

jsp技術(shù)運(yùn)行時(shí)實(shí)現(xiàn)Java的多態(tài)性,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美白人极品性喷潮 | 精品AV亚洲乱码一区二区 | 粗好大用力好深快点漫画 | 又色又爽又黄gif动态视频 | 日韩欧美亚洲精品综合在线 | 97超碰射射射 | 在线中文字幕网站 | 一本一本之道高清在线观看 | 中文字幕永久在线 | 亚洲 日韩 在线 国产 精品 | 俄罗斯12一15处交 | 韩国羞羞秘密教学子开车漫书 | 色翁荡熄月月 | 一二三四中文字幕在线看 | 欧美18videosex性欧美老师 | 国产精品免费观看视频播放 | 男人插曲视频大全免费网站 | 无遮掩H黄纯肉动漫在线观看星 | 毛片在线网址 | 久久久国产精品免费A片蜜芽广 | 丝瓜视频樱桃视频在线观看免费 | 日韩插啊免费视频在线观看 | 成人中文字幕在线观看 | 影888午夜理论不卡 樱桃熟了A级毛片 | YY8848高清私人影院 | 男的插曲女的下面免费APP | 特黄AAAAAAA片免费视频 | 甜性涩爱在线播放 | jizzjizz丝袜| 国产亚洲精品久久77777 | 久久aa毛片免费播放嗯啊 | 久久黄视频 | 中国老太婆xxxxx | 久久全国免费久久青青小草 | 精品日韩视频 | 国产免费变态视频网址网站 | 免费国产精品视频 | 久章草一区二区 | 漂亮妈妈中文字幕版 | 国产 亚洲 中文字幕 在线 | 伊人大香线蕉精品在线播放 |