最近突然看到了關于Java的雙親委派機制,作為一個搞Java的程式猿還是應該知道是怎麼回事。
我用一個程式來簡單說明是怎麼回事吧
package java.util;
/**
* 本類中的main方法不會正常執行,這裡涉及到的知識點就是雙親委派邏輯
* 雙親委派的特點就是:
* 1. 父類存在則調用父類,不執行子類
* 2. 父類不存在,則執行子類
* 這裡模拟的就是List類,這個類因為屬于JDK自帶的預設類,是以會先調用預設類;
* 而預設類中根本就沒有main方法,是以執行本方法就報錯了,這麼做的好處就是防止
* 黑客模拟父類釋放病毒等
* @author threej
*
*/
public class List {
public static void main(String[] args) {
System.out.println('a');
}
}
這個程式很好的解釋了雙親委派,但是這裡需要注意的一點就是模拟程式需要嚴格按照Java本身自帶類的路徑來建構類,比如我這裡用的List類,我們寫測試類是包路徑就是java.util,這樣程式才會有我們想要的結果。