java_318-32027
多態性java編程的四個主要原則之一。在這裡,我將更多地討論多態性是如何成為Java語言最重要的特性之一。讓我們從基礎開始。多態性被定義為對像以多種形式表示的能力。

多態性原理分為兩類,即:

編譯時(靜態)多態

運行時(動態)多態

 


1.編譯時多態性:

方法重載用於實現靜態多態性。方法重載表明沒有。類中具有相同名稱但在順序,類型或否定方面不同的方法。參數。在編譯時,Java通過檢查方法的簽名來確定必須調用的方法。因此,它被稱為編譯時多態性

例如:

classCalculate

{

    int add(int a, int b)

    {

         return a+b;

    }

    int  add(int a, int b, int c) 

    {

         return a+b+c;

    }

}

publicclassSample

{

   publicstaticvoid main(String args[])

   {

            Calculate obj = newCalculate();

       System.out.println(obj.add(20, 30));

       System.out.println(obj.add(20, 40, 30));

   }

}

 

輸出:

50
90

 

在這裡,我們有兩個不同版本的相同方法'add'。兩種不同版本採用不同的版本。參數。編譯器檢查要在編譯時調用的方法的簽名。

2.運行時多態性:

方法重寫用於在java中實現動態多態。方法重寫定義為在保持相同簽名的同時將超類的方法重新定義為子類的過程。使用方法重寫,我們可以在超類和子類中定義多個具有相同名稱和簽名的方法。對象的類型在運行時確定。它是標識要調用的方法的對像類型。因此,它被稱為運行時多態性。

例如:

class XYZ{
   publicvoid First(){
         System.out.println("Overridden");
   }
}
publicclass ABC extends XYZ{
 
   publicvoid First(){
         System.out.println("This method is Overridden");
   }
   publicstaticvoid main(String args[]){
         XYZ obj =new ABC();
         obj.First();
   }
}

 

輸出:

This method is Overridden

 

這裡,將調用子類ABC的方法First(),因為對象的類型決定了要執行的方法。並且由於該對象屬於子類,因此調用First()方法的子類版本。

 

動態多態性比靜態多態性更靈活,因為在動態多態性的情況下,所有事物都在運行時執行。由於靜態多態性在編譯時的早期綁定,它比在運行時綁定的動態多態性更快。  

查看原文 >>
相關文章