第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java中的動(dòng)態(tài)和靜態(tài)多態(tài)有什么區(qū)別?

Java中的動(dòng)態(tài)和靜態(tài)多態(tài)有什么區(qū)別?

千萬(wàn)里不及你 2019-08-30 14:08:12
任何人都可以提供一個(gè)簡(jiǎn)單的例子來(lái)解釋Java中動(dòng)態(tài)和靜態(tài)多態(tài)的區(qū)別嗎?
查看完整描述

3 回答

?
交互式愛(ài)情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

多態(tài)性


1.靜態(tài)綁定/編譯時(shí)綁定/早期綁定/方法重載。(在同一類中)


2.動(dòng)態(tài)綁定/運(yùn)行時(shí)綁定/后期綁定/方法覆蓋。(在不同的類中)


重載示例:

class Calculation {  

  void sum(int a,int b){System.out.println(a+b);}  

  void sum(int a,int b,int c){System.out.println(a+b+c);}  


  public static void main(String args[]) {  

    Calculation obj=new Calculation();  

    obj.sum(10,10,10);  // 30

    obj.sum(20,20);     //40 

  }  

}  

壓倒一切的例子:

class Animal {    

   public void move(){

      System.out.println("Animals can move");

   }

}


class Dog extends Animal {


   public void move() {

      System.out.println("Dogs can walk and run");

   }

}


public class TestDog {


   public static void main(String args[]) {

      Animal a = new Animal(); // Animal reference and object

      Animal b = new Dog(); // Animal reference but Dog object


      a.move();//output: Animals can move


      b.move();//output:Dogs can walk and run

   }

}


查看完整回答
反對(duì) 回復(fù) 2019-08-30
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

  • 方法重載將是靜態(tài)多態(tài)的一個(gè)例子

  • 而重寫(xiě)將是動(dòng)態(tài)多態(tài)的一個(gè)例子。

    因?yàn)?,在重載的情況下,編譯時(shí)編譯器知道鏈接到調(diào)用的方法。但是,在運(yùn)行時(shí)確定動(dòng)態(tài)多態(tài)性


查看完整回答
反對(duì) 回復(fù) 2019-08-30
?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

動(dòng)態(tài)(運(yùn)行時(shí))多態(tài)性運(yùn)行時(shí)存在的多態(tài)性。這里,Java編譯器不了解在編譯時(shí)調(diào)用哪個(gè)方法。只有JVM決定在運(yùn)行時(shí)調(diào)用哪個(gè)方法。使用實(shí)例方法的方法重載和方法重寫(xiě)是動(dòng)態(tài)多態(tài)的示例。

例如,

  • 考慮一個(gè)序列化和反序列化不同類型文檔的應(yīng)用程序。

  • 我們可以將'Document'作為基類,并從中派生出不同的文檔類型類。例如XMLDocument,WordDocument等。

  • Document類將'Serialize()'和'De-serialize()'方法定義為virtual,每個(gè)派生類將根據(jù)文檔的實(shí)際內(nèi)容以自己的方式實(shí)現(xiàn)這些方法。

  • 當(dāng)需要序列化/反序列化不同類型的文檔時(shí),文檔對(duì)象將由“Document”類引用(或指針)引用,并且在調(diào)用“Serialize()”或“De-serialize()”方法時(shí)在其上,調(diào)用適當(dāng)版本的虛擬方法。

靜態(tài)(編譯時(shí))多態(tài)性是編譯時(shí)顯示的多態(tài)性。這里,Java編譯器知道調(diào)用哪個(gè)方法。使用靜態(tài)方法重載方法和方法重寫(xiě); 使用私有或最終方法重寫(xiě)的方法是靜態(tài)多態(tài)的示例

例如,

  • 員工對(duì)象可能有兩個(gè)print()方法,一個(gè)不帶參數(shù),另一個(gè)帶前綴字符串以及員工數(shù)據(jù)。

  • 給定這些接口,當(dāng)在沒(méi)有任何參數(shù)的情況下調(diào)用print()方法時(shí),查看函數(shù)參數(shù)的編譯器知道要調(diào)用哪個(gè)函數(shù),并相應(yīng)地生成目標(biāo)代碼。

有關(guān)詳細(xì)信息,請(qǐng)閱讀“什么是多態(tài)”(Google it)。


查看完整回答
反對(duì) 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 1336 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)