java中的多態(tài)怎么理解 在java中,什么是多態(tài)?多態(tài)是用來做什么的?
在java中,什么是多態(tài)?多態(tài)是用來做什么的?多態(tài)性是java面向?qū)ο缶幊痰囊粋€(gè)特性,它允許不同的對(duì)象響應(yīng)相同的消息(或函數(shù))。更坦率地說,相同的消息可以根據(jù)不同的對(duì)象發(fā)送,并采取各種不同的行為方式。
在java中,什么是多態(tài)?多態(tài)是用來做什么的?
多態(tài)性是java面向?qū)ο缶幊痰囊粋€(gè)特性,它允許不同的對(duì)象響應(yīng)相同的消息(或函數(shù))。更坦率地說,相同的消息可以根據(jù)不同的對(duì)象發(fā)送,并采取各種不同的行為方式。
例如:例如,按F1鍵,flash界面會(huì)彈出as 3的幫助文檔;word界面會(huì)彈出word幫助;windows界面會(huì)彈出windows幫助和支持。如果相同的事件發(fā)生在不同的對(duì)象上,它將產(chǎn)生不同的結(jié)果。
多態(tài)性用于消除類型之間的耦合關(guān)系。提高程序的可擴(kuò)展性。例如,在編程中,只需按照父類的設(shè)計(jì)進(jìn)行操作。不管它是什么樣的子類,在將來使用這個(gè)子類都是不舒服的。只需將其更改為另一個(gè),它不會(huì)影響原始代碼。這樣,代碼維護(hù)就更容易了
Java1中的多態(tài)性。多態(tài)性是面向?qū)ο缶幊痰牧硪粋€(gè)重要特性。這意味著在父類中定義的屬性和方法被子類繼承后,它們可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為,這使得同一屬性或方法在父類及其子類中具有不同的含義。2對(duì)于面向?qū)ο?,多態(tài)性分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性。其中編譯時(shí)多態(tài)性是靜態(tài)的,主要指方法重載。它根據(jù)不同的參數(shù)表來區(qū)分不同的方法。編譯之后,它將變成兩個(gè)不同的方法,在運(yùn)行時(shí)不是多態(tài)的。運(yùn)行時(shí)多態(tài)性是動(dòng)態(tài)的,它是通過動(dòng)態(tài)綁定來實(shí)現(xiàn)的,通常稱為多態(tài)性。
java中多態(tài)具體是什么?
多態(tài)性分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性。
1. 編譯時(shí)多態(tài)性,其實(shí)是方法重載,函數(shù)名相同,但簽名不一樣。值得注意的是,簽名不包括方法的返回值。換句話說,這兩個(gè)方法的函數(shù)名和輸入?yún)?shù)是相同的,但返回值不同。編譯器返回錯(cuò)誤。
2. 運(yùn)行時(shí)多態(tài)性實(shí)際上與繼承和接口實(shí)現(xiàn)有關(guān)。子類可以重寫父類的非最終、非靜態(tài)、非私有方法或?qū)崿F(xiàn)接口方法。JVM如何知道要調(diào)用哪個(gè)子類實(shí)例的對(duì)應(yīng)方法?這就是你問的問題。在Java中,對(duì)象在JVM中有描述元數(shù)據(jù)。對(duì)象頭存儲(chǔ)當(dāng)前實(shí)例的類型信息。在調(diào)用時(shí),JVM可以根據(jù)這個(gè)類型準(zhǔn)確地找出要使用的子類方法。