天天躁日日躁狠狠躁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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 饱满奶大30p | 翁用力的抽插 | 国产亚洲欧美在线中文BT天堂网 | 午夜免费福利片 | 国产白丝JK被疯狂输出视频 | 国产精品久久久久久久久LI无码 | 中文字幕成人免费高清在线 | 亚洲免费在线视频 | 妹妹成人网 | 国产三区在线成人AV | 久久亚洲精品永久网站 | 玩两个少妇女邻居 | 三级黄色在线免费观看 | 同房交换4p好爽 | 日本无码欧美激情在线视频 | 亚欧成人毛片一区二区三区四区 | 青青草视频在线ac | 99久久久免费精品免费 | 亚洲AV无码乱码A片无码蜜桃 | 婷婷六月激情综合一区 | 88福利视频 | 爽娇妻快高h | 最新国产成人综合在线观看 | 亚洲色欲国产免费视频 | 热中文热国产热综合 | 国产亚洲精品久久久久久鸭绿欲 | 牛牛在线精品视频 | 绿巨人www | 亚洲精品无码AAAAAA片 | 曰批国产精品视频免费观看 | 色青青草原桃花久久综合 | 父亲猜女儿在线观看 | 肉动漫h黄动漫日本免费观看 | 99久久精品全部 | 2021国产精品一卡2卡三卡4卡 | 漂亮的av女演员 | 神电影院午夜dy888我不卡 | 亚洲中字慕日产2020 | 一本大道香蕉中文在线视频观看 | 黑色丝袜美女被网站 | 久青草国产在线观看视频 |