第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為什么需要動態(tài)綁定?

為什么需要動態(tài)綁定?

qq_笑_17 2023-11-10 16:40:21
我不明白為什么我們需要動態(tài)綁定(后期綁定)。假設(shè)我們有 A 類和 B 類,并且 B 類擴(kuò)展了 A 類,現(xiàn)在我們可以編寫類似“A var= new B();”的內(nèi)容 現(xiàn)在假設(shè)兩個(gè)類都包含具有相同簽名的方法,例如方法“cry()”現(xiàn)在我可以編寫類似“var.cry()”的內(nèi)容,現(xiàn)在僅基于“var”的類型編譯器無法綁定正確的方法編譯期間對實(shí)例“var”的方法,但編譯器必須檢查以下語句是否合法“A var= new B();” 現(xiàn)在因?yàn)樗仨殭z查該語句是否合法,所以它必須知道“var”將引用類 B 的實(shí)例,現(xiàn)在如果它知道這一點(diǎn),編譯器必須能夠在編譯時(shí)綁定正確的方法?
查看完整描述

2 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

假設(shè)你有

void foo(A someA) {
  someA.cry()

}

現(xiàn)在怎么辦?沒有人可以預(yù)先告訴您傳入的 A 是 A 還是 B!

換句話說,有很多方法無法在編譯時(shí)可靠地了解某個(gè)對象的確切性質(zhì)!


查看完整回答
反對 回復(fù) 2023-11-10
?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

這在一般情況下是不可能的。例如這里:


A var;


if(x) {

    var = new A();

} else {

    var = new B();

}


var.cry();

在最后一行中,如果 var 引用的是 A 或 B 的實(shí)例,則未知。


查看完整回答
反對 回復(fù) 2023-11-10
  • 2 回答
  • 0 關(guān)注
  • 184 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號