public class test2
}class father
public void doget()
}class child extends father
public void doget()
}
結果是:
child service
parent service
child doget
比較難以理解的是呼叫super.service(),結果卻是
parent service
child doget
也就是說:
public void service()
public void doget()
這段**中呼叫的doget()是子類的doget方法。
原因:我們方法呼叫的時候,會預設將this關鍵字傳入進去(隱式傳this),而father f = new child()這段**,是乙個父類引用指向子類物件。它會呼叫child的方法。而隱式傳的this就是child的this。
所以當呼叫doget()方法時,其實就相當於this.doget()。(我們直接加上this,結果也是正確的)。
也就是child 的doget方法。
JAVA記憶體相關基礎
jvm 記憶體劃分 暫存器 記憶體和 cpu 之間佔的記憶體 本地方法棧 jvm 呼叫了系統的功能 如 呼叫系統的複製貼上 方法 資料共享區 執行時 class 檔案進入的地方 方法棧 執行時所有方法進入的記憶體 堆 儲存的是容器 如 陣列 和物件 陣列建立過程 壓棧執行 好比上子彈,方法先進入方法...
JAVA 物件建立,方法呼叫的記憶體分析
先放一張截圖 從main方法開始執行整個記憶體分析情況如下 1 main方法在棧去分配記憶體空間。程式執行時,方法沒有被呼叫前,方法是沒有記憶體空間的,只有方法在被呼叫時,才會進行壓棧動作,在棧去分配記憶體空間。2 程式開始執行person p1 new person 建立person物件,main...
java呼叫ocx方法
一 註冊.ocx控制項,在命令視窗執行 regsvr32.exe ocx,二 取得控制項的classid,開始 執行 輸 regedit,開啟登錄檔 在登錄檔的工具欄的編輯中找到搜尋按鈕,輸入 ocx的名字 查詢,就可以得到控制項的classid,即工程1.usercontrol1 三 ole呼叫的...