最近突然看到了关于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,这样程序才会有我们想要的结果。