之所以這么問,是因?yàn)榫W(wǎng)上查到了兩種說法,一個說構(gòu)造方法的作用是分配內(nèi)存,創(chuàng)建對象,另一個說法是構(gòu)造方法是給已經(jīng)創(chuàng)建好的對象中的成員變量進(jìn)行初始化對第一種說法有幾個疑點(diǎn):如果構(gòu)造方法是用來創(chuàng)建對象的,無法解釋抽象類中為什么存在構(gòu)造方法看到很多資料中說接口中不允許有構(gòu)造方法的原因,是接口不能被實(shí)例化,可這種說法與上一個疑問有沖突,抽象類也無法被實(shí)例化,但它就有構(gòu)造方法個人比較傾向于第二種,就是構(gòu)造方法的作用是給類中的變量進(jìn)行初始化的,這種說法能夠解釋上邊兩個疑點(diǎn),因?yàn)闃?gòu)造方法的作用是給變量進(jìn)行初始化,所以抽象類中有構(gòu)造方法,因?yàn)樗谐蓡T變量,需要進(jìn)行初始化,同樣的,接口中不存在構(gòu)造方法,所以它沒有變量,只允許final修飾的常量,因?yàn)槌A坎恍枰獦?gòu)造方法進(jìn)行初始化當(dāng)然,以上也只是邏輯分析,根本沒有代碼支持,有人說需要去學(xué)一下JVM,里邊有解釋,可是JVM好難啊,看的頭暈QwQ,只能可恥的做一次伸手黨了,就想問下我這么理解對不對先行拜謝!
添加回答
舉報(bào)
0/150
提交
取消