摘要:至此,類實例化完成。塊中會先行發生這一點有點迷,明明調試的順序是先執行里的語句導致然后才跳到,然后執行該方法返回的值還是原先的,感覺能從函數調用棧幀角度說得通,但這里不熟,未來再回來解疑。
先上題目:
函數ExtendsTest.main()執行后的輸出:
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); } } }
為了方便調試,我們先對B類的構造器做一點改裝:
public B() { super(5); int c = getValue(); setValue(c - 3); }
開始調試:
這里開始調用this.setValue(),由于子類B自己覆蓋了父類的方法,所以這里調用子類的方法,執行后結果為12
也就是說此時的value為B實例的變量value=12,不過要搞清楚的是調用getValue()方法返回的結果是6,返回結果是:
然后是setValue的計算:(6-3)*2=6,此時類B的實例的value值由原先的12變成6。至此,類B實例化完成。
接下來就是調用getValue()的結果了:
value=6+1=7,return 7,打印 2*7=14。最終打印7
所以最終打印結果為: 12 14 7
總結:
當子類覆蓋父類的方法后,父類里調用同名方法將調用子類的方法,這是繼承的特性。
try...finally塊中return 會先行發生(這一點有點迷,明明idea調試的順序是先執行finally里的語句導致value=12,然后才跳到return,然后執行該方法返回的值還是原先的6,感覺能從函數調用棧幀角度說得通,但這里不熟,未來再回來解疑。)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67742.html
摘要:具體的時間線從月中旬,我開始關注牛客網的秋招內推信息。直至十月中下旬結束秋招。之前也寫過自己在廣州找實習的經歷,那次把面試的過程都具體貼出來了。我今年就完美錯過了春招實習經歷。 前言 只有光頭才能變強 離上次發文章已經快兩個月時間了,最近一直忙著秋招的事。今天是2018年10月22日,對于互聯網行業來說,秋招就基本結束了。我這邊的流程也走完了(不再筆試/面試了),所以來寫寫我的秋招經歷...
摘要:最近面試一家有直播業務的公司,明顯感覺到對多線程的理解有一些要求。第一輪面試大概就面了分鐘左右,一輪下來口干舌燥。下面對面試題做了下簡單分類,分享給大家。 最近面試一家有直播業務的公司,明顯感覺到對多線程的理解有一些要求。第一輪面試大概就面了 70 分鐘左右,一輪下來口干舌燥。 下面對面試題做了下簡單分類,分享給大家。 多線程 有什么方法可以監控線程的狀態 synchronized ...
摘要:作者今年大三,在春招過程中參加了多家大公司的面試后,拿到了騰訊的前端實習,在這里做一些總結,希望給還未參加過實習面試的同學一些幫助。在之后的面試時就更加從容一些了。 作者今年大三,在春招過程中參加了多家大公司的面試后,拿到了騰訊的前端實習 offer,在這里做一些總結,希望給還未參加過實習面試的同學一些幫助。 一、簡歷的準備 簡歷制作是很重要的一個環節,一份好的簡歷會給面試官留下很不錯...
閱讀 2632·2021-11-19 09:56
閱讀 880·2021-09-24 10:25
閱讀 1650·2021-09-09 09:34
閱讀 2204·2021-09-09 09:33
閱讀 1063·2019-08-30 15:54
閱讀 550·2019-08-29 18:33
閱讀 1273·2019-08-29 17:19
閱讀 512·2019-08-29 14:19