⑴ java多態的實現主要體現在哪些方面
多態可分為:
1.編譯多態:主要是體現在重載,系統在編譯時就能確定調用重載函數的哪個版本。
2.運行多態:主要體現在OO設計的繼承性上,子類的對象也是父類的對象,即上溯造型,所以子類對象可以作為父類對象使用,父類的對象變數可以指向子類對象。因此通過一個父類發出的方法調用可能執行的是方法在父類中的實現,也可能是某個子類中的實現,它是由運行時刻具體的對象類型決定的。
⑵ 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.簡化性。多態簡化了對應用軟體的代碼編寫和修改過程,尤其在處理大量對象的運算和操作時,這個特點尤為突出和重要。值得注意的是,多態並不能夠解決提高執行速度的問題,因為它基於動態裝載和地址引用,或稱動態綁定。