先声明:一下是我本人通过多次调试程序总结的结果。因为本人水平有限,不能保证总结的结果是正确的,只是拿出来和大家一起讨论
在编译的时候:
1检测父类中所有的与其方法名相同,参数列表相同,并且权限不是private的所有方法,并从中挑选出所在类类型最子类的方法。
2判断本类是否有权限访问第一个步骤找到的方法,如果有权限就进行第三步
3要求本方法的返回值类型是上面所说的方法子类,抛出异常必须是上面那个方法抛出的异常的子类,必须和上面的那个方法要么都是static 要么都不是static在运行的时候某个类的某个方法的时候,如果不是static方法
检查所有子类型满足下面条件的方法:
1方法名和参数列表相同
2要求本方法的返回值类型是本方法子类,抛出异常必须是本方法抛出的异常的子类,不是static方法
3所在类有权访问本方法
然后从所有满足上面条件的子类方法中找出所在类最子类的方法运行之