114培訓(xùn)網(wǎng)歡迎您來到杭州達(dá)內(nèi)教育!

15757356768

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

杭州Java培訓(xùn) 淺談Java中多態(tài)變量

授課機(jī)構(gòu):杭州達(dá)內(nèi)教育

關(guān)注度:997

課程價(jià)格: 請(qǐng)咨詢客服

上課地址:請(qǐng)咨詢客服

開課時(shí)間:滾動(dòng)開班

咨詢熱線:15757356768

在線報(bào)名

課程詳情在線報(bào)名

更新時(shí)間:2025-01-16
【杭州達(dá)內(nèi)】很多人對(duì)于Java中的多態(tài)變量并不陌生,那么你是否真的了解呢?在下面的杭州Java培訓(xùn)中杭州達(dá)內(nèi)的老師就來談一談Java中的多態(tài)變量。 杭州Java培訓(xùn)一、多態(tài)的表現(xiàn)形式 多態(tài)的表現(xiàn)形式有方法重載,方法改寫,多態(tài)變量和泛型。重載是一種靜態(tài)的多態(tài)性,在程序編譯時(shí)確定被調(diào)用的方法,稱為早綁定。而多態(tài)變量和改寫相結(jié)合之后,方法的調(diào)用在運(yùn)行時(shí)才能確定,是動(dòng)態(tài)的多態(tài)性,稱為晚綁定。 杭州Java培訓(xùn)二、里氏替換原則(The Liskov Principle of Substitution) 在靜態(tài)類型語言中,在父類和子類之間的關(guān)系存在下面的現(xiàn)象 子類的實(shí)例必須擁有父類的所有數(shù)據(jù)成員; 子類的實(shí)例必須至少通過繼承(如果不是顯示地改寫)實(shí)現(xiàn)父類所定義的所有功能; 這樣,在某種條件下,如果用子類實(shí)例來替換父類實(shí)例,那么將會(huì)發(fā)現(xiàn)子類實(shí)例可以完全模擬父類的行為,二者毫無差別; 替換原則是指如果有A和B兩個(gè)類,類B是類A的子類,那么在任何情況下都可以用類B來替換類A,而外界則毫無察覺。 不是所有繼承產(chǎn)生的子類都符合替換原則,符合替換原則的子類稱為子類型。 杭州Java培訓(xùn)三、靜態(tài)類型和動(dòng)態(tài)類型 在靜態(tài)類型面向?qū)ο笳Z言中,一個(gè)變量所存儲(chǔ)的值的類型并不等同于這個(gè)變量所聲明的類型。聲明為父類類型的變量可以包含子類的實(shí)例值。 靜態(tài)類型是指變量在聲明時(shí)所確定的類型,并且一經(jīng)聲明就不會(huì)改變;動(dòng)態(tài)類型是指這個(gè)變量實(shí)際存儲(chǔ)的值的類型。在靜態(tài)類型的面向?qū)ο蟪绦蛟O(shè)計(jì)語言中,在編譯時(shí)消息傳遞表達(dá)式的合法性不是基于接收器的動(dòng)態(tài)類型,而是基于接收器的靜態(tài)類型。而對(duì)象對(duì)消息的響應(yīng)取決于對(duì)象的動(dòng)態(tài)類型。(就是說:寫代碼的時(shí)候“點(diǎn)”不出該對(duì)象動(dòng)態(tài)類型包含而靜態(tài)類型不包含的變量、方法;動(dòng)態(tài)類型就是程序運(yùn)行過程中被重新賦值為對(duì)其他對(duì)象的引用,這時(shí)候他就可以含有動(dòng)態(tài)類型對(duì)象的方法了。) 杭州Java培訓(xùn)四、父類對(duì)象和子類對(duì)象 子類從父類繼承了所有的屬性和方法,因此作用在父類上的方法應(yīng)用在子類對(duì)象上也是合法的。由于繼承表達(dá)的是一種is a關(guān)系,即子類對(duì)象可以被視為父類的一個(gè)對(duì)象,因此可以把子類對(duì)象的引用賦給父類對(duì)象;反之,父類對(duì)象不一定是其某個(gè)特定子類的對(duì)象,因此不一定滿足is a關(guān)系,因此不能把父類對(duì)象的引用直接賦給子類對(duì)象。
姓名不能為空
手機(jī)號(hào)格式錯(cuò)誤