1. 程式人生 > >Java多態機制和繼承中重寫重載

Java多態機制和繼承中重寫重載

htm uil 不同的 運行期 表現 決定 this targe 程序

關於Java中多態機制

http://www.cnblogs.com/chenssy/p/3372798.html

這篇博文講的很透徹

大體意思是

多態定義:

多態就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。因為在程序運行時才確定具體的類,這樣,不用修改源程序代碼,就可以讓引用變量綁定到各種不同的類實現上,從而導致該引用調用的具體方法隨之改變,即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性。

Java實現多態有三個必要條件:繼承、重寫、向上轉型:

繼承:在多態中必須存在有繼承關系的子類和父類。

重寫:子類對父類中某些方法進行重新定義,在調用這些方法時就會調用子類的方法。

向上轉型:在多態中需要將子類的引用賦給父類對象,只有這樣該引用才能夠具備技能調用父類的方法和子類的方法。

多態機制:

當超類對象引用變量引用子類對象時,被引用對象的類型而不是引用變量的類型決定了調用誰的成員方法,但是這個被調用的方法必須是在超類中定義過的,也就是說被子類覆蓋的方法。

其實在繼承鏈中對象方法的調用存在一個優先級:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。

Java重寫和重載定義和C++中一樣,但是在繼承中表現不一樣

Java在繼承中重寫:

http://blog.csdn.net/fly_zxy/article/details/45622069

Java在繼承中重載:

http://www.cnblogs.com/kuillldan/p/5905572.html

Java多態機制和繼承中重寫重載