亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中的動態和靜態多態有什么區別?

Java中的動態和靜態多態有什么區別?

千萬里不及你 2019-08-30 14:08:12
任何人都可以提供一個簡單的例子來解釋Java中動態和靜態多態的區別嗎?
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

多態性


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


2.動態綁定/運行時綁定/后期綁定/方法覆蓋。(在不同的類中)


重載示例:

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

   }

}


查看完整回答
反對 回復 2019-08-30
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

  • 方法重載將是靜態多態的一個例子

  • 而重寫將是動態多態的一個例子。

    因為,在重載的情況下,編譯時編譯器知道鏈接到調用的方法。但是,在運行時確定動態多態性


查看完整回答
反對 回復 2019-08-30
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

動態(運行時)多態性運行時存在的多態性。這里,Java編譯器不了解在編譯時調用哪個方法。只有JVM決定在運行時調用哪個方法。使用實例方法的方法重載和方法重寫是動態多態的示例。

例如,

  • 考慮一個序列化和反序列化不同類型文檔的應用程序。

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

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

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

靜態(編譯時)多態性是編譯時顯示的多態性。這里,Java編譯器知道調用哪個方法。使用靜態方法重載方法和方法重寫; 使用私有或最終方法重寫的方法是靜態多態的示例

例如,

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

  • 給定這些接口,當在沒有任何參數的情況下調用print()方法時,查看函數參數的編譯器知道要調用哪個函數,并相應地生成目標代碼。

有關詳細信息,請閱讀“什么是多態”(Google it)。


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 1341 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號