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