摘要:至此,類(lèi)實(shí)例化完成。塊中會(huì)先行發(fā)生這一點(diǎn)有點(diǎn)迷,明明調(diào)試的順序是先執(zhí)行里的語(yǔ)句導(dǎo)致然后才跳到,然后執(zhí)行該方法返回的值還是原先的,感覺(jué)能從函數(shù)調(diào)用棧幀角度說(shuō)得通,但這里不熟,未來(lái)再回來(lái)解疑。
先上題目:
函數(shù)ExtendsTest.main()執(zhí)行后的輸出:
public class ExtendsTest { public static void main(String[] args) { System.out.println(new B().getValue()); } static class A { protected int value; public A(int value) { this.value = value; } public int getValue() { try { value++; return value; } finally { this.setValue(value); System.out.println(value); } } public void setValue(int value) { this.value = value; } } static class B extends A { public B() { super(5); setValue(getValue() - 3); } @Override public void setValue(int value) { super.setValue(2 * value); } } }
為了方便調(diào)試,我們先對(duì)B類(lèi)的構(gòu)造器做一點(diǎn)改裝:
public B() { super(5); int c = getValue(); setValue(c - 3); }
開(kāi)始調(diào)試:
這里開(kāi)始調(diào)用this.setValue(),由于子類(lèi)B自己覆蓋了父類(lèi)的方法,所以這里調(diào)用子類(lèi)的方法,執(zhí)行后結(jié)果為12
也就是說(shuō)此時(shí)的value為B實(shí)例的變量value=12,不過(guò)要搞清楚的是調(diào)用getValue()方法返回的結(jié)果是6,返回結(jié)果是:
然后是setValue的計(jì)算:(6-3)*2=6,此時(shí)類(lèi)B的實(shí)例的value值由原先的12變成6。至此,類(lèi)B實(shí)例化完成。
接下來(lái)就是調(diào)用getValue()的結(jié)果了:
value=6+1=7,return 7,打印 2*7=14。最終打印7
所以最終打印結(jié)果為: 12 14 7
總結(jié):
當(dāng)子類(lèi)覆蓋父類(lèi)的方法后,父類(lèi)里調(diào)用同名方法將調(diào)用子類(lèi)的方法,這是繼承的特性。
try...finally塊中return 會(huì)先行發(fā)生(這一點(diǎn)有點(diǎn)迷,明明idea調(diào)試的順序是先執(zhí)行finally里的語(yǔ)句導(dǎo)致value=12,然后才跳到return,然后執(zhí)行該方法返回的值還是原先的6,感覺(jué)能從函數(shù)調(diào)用棧幀角度說(shuō)得通,但這里不熟,未來(lái)再回來(lái)解疑。)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67742.html
摘要:具體的時(shí)間線從月中旬,我開(kāi)始關(guān)注牛客網(wǎng)的秋招內(nèi)推信息。直至十月中下旬結(jié)束秋招。之前也寫(xiě)過(guò)自己在廣州找實(shí)習(xí)的經(jīng)歷,那次把面試的過(guò)程都具體貼出來(lái)了。我今年就完美錯(cuò)過(guò)了春招實(shí)習(xí)經(jīng)歷。 前言 只有光頭才能變強(qiáng) 離上次發(fā)文章已經(jīng)快兩個(gè)月時(shí)間了,最近一直忙著秋招的事。今天是2018年10月22日,對(duì)于互聯(lián)網(wǎng)行業(yè)來(lái)說(shuō),秋招就基本結(jié)束了。我這邊的流程也走完了(不再筆試/面試了),所以來(lái)寫(xiě)寫(xiě)我的秋招經(jīng)歷...
摘要:面試官說(shuō)那我問(wèn)你一個(gè)哲學(xué)的問(wèn)題,為什么有數(shù)據(jù)結(jié)構(gòu)這種東西哇,這是啥,巴拉巴拉扯了一通,大致就是物以類(lèi)聚,人以群分,先人積累下來(lái)的經(jīng)驗(yàn),這些讓我們更方便處理數(shù)據(jù)啥的。 前因,沒(méi)有比摸魚(yú)有趣的事了 距離自己被外派(俗稱(chēng)外包)出去,已經(jīng)過(guò)了快五個(gè)月,工作的話(huà),很閑。人啊,一定保持好的習(xí)慣,懶惰是會(huì)上癮,日常摸魚(yú),懷疑人生,我是誰(shuí),我在哪,我要干什么。 中午吃飯的時(shí)候,收到了boss直聘的一條...
摘要:最近面試一家有直播業(yè)務(wù)的公司,明顯感覺(jué)到對(duì)多線程的理解有一些要求。第一輪面試大概就面了分鐘左右,一輪下來(lái)口干舌燥。下面對(duì)面試題做了下簡(jiǎn)單分類(lèi),分享給大家。 最近面試一家有直播業(yè)務(wù)的公司,明顯感覺(jué)到對(duì)多線程的理解有一些要求。第一輪面試大概就面了 70 分鐘左右,一輪下來(lái)口干舌燥。 下面對(duì)面試題做了下簡(jiǎn)單分類(lèi),分享給大家。 多線程 有什么方法可以監(jiān)控線程的狀態(tài) synchronized ...
摘要:作者今年大三,在春招過(guò)程中參加了多家大公司的面試后,拿到了騰訊的前端實(shí)習(xí),在這里做一些總結(jié),希望給還未參加過(guò)實(shí)習(xí)面試的同學(xué)一些幫助。在之后的面試時(shí)就更加從容一些了。 作者今年大三,在春招過(guò)程中參加了多家大公司的面試后,拿到了騰訊的前端實(shí)習(xí) offer,在這里做一些總結(jié),希望給還未參加過(guò)實(shí)習(xí)面試的同學(xué)一些幫助。 一、簡(jiǎn)歷的準(zhǔn)備 簡(jiǎn)歷制作是很重要的一個(gè)環(huán)節(jié),一份好的簡(jiǎn)歷會(huì)給面試官留下很不錯(cuò)...
閱讀 2628·2021-11-19 09:56
閱讀 874·2021-09-24 10:25
閱讀 1632·2021-09-09 09:34
閱讀 2195·2021-09-09 09:33
閱讀 1052·2019-08-30 15:54
閱讀 542·2019-08-29 18:33
閱讀 1264·2019-08-29 17:19
閱讀 505·2019-08-29 14:19