1. 程式人生 > >java中什麼是多型性?它具有什麼優點

java中什麼是多型性?它具有什麼優點



Java是面向物件的語言,多型性是面向物件程式設計程式碼重用的一個最強大機制,動態性的概念也可以被說成“一個介面,多個方法”。Java實現執行時多型性的基礎是動態方法排程,它是一種在執行時而不是在編譯期呼叫過載方法的機制,主要體現在繼承和介面實現兩方面,詳見例子:繼承實現多型例如:

class A{

      method(){

         System.out.println("a");

    }

}

class B extends A{

       method(){

       System.out.println("b");

    }

}

class test{

       main(){

        A test = new B();

        test.method();//執行以後輸出的是:b。解釋就是:父類引用(A)指向子類物件(B),這個引用呼叫的是子類的方法,而不是父  類A的方法;

    }

}

繼承實現多型其實原理類似:

interface A{

    method();

}

class B implements A{

      method(){

      System.out.println();

    }

}

class test{main(){

     A test = new B();

    test.method();//此處便會使用java的多型,B實現了A,雖然=前面是A test,但實際上生成的確是B的物件,所以呼叫它的方法,同繼承中的父類物件指向子類物件原理相同,只是此處為繼承;

   }

}

多型的好處非常明顯啊,有人總結:

        1.可替換性。多型對已存在的程式碼具有可替換性。

        2.可擴充性。多型對程式碼具有可擴充性。增加新的子類不影響已存在類的多型性、繼承性,以及其他特性的執行和操作。實際 上新加子類更容易獲得多型功能。  

      3.介面性。多型是超類通過方法簽名,向子類提供了一個共同介面,由子類來完善或者覆蓋它而實現的。  

     4.靈活性。它在應用中體現了靈活多樣的操作,提高了使用效率。  

     5.簡化性。多型簡化了對應用軟體的程式碼編寫和修改過程,尤其在處理大量物件的運算和操作時,這個特點尤為突出和重要。值得注意的是,多型並不能夠解決提高執行速度的問題,因為它基於動態裝載和地址引用,或稱動態繫結。