Java 语言中方法重写的本质:
-
找到操作数栈顶的第一个元素所执行的对象的实际类型,记作 C。
-
如果在类型 C 中找到与常量中的描述符和简单名称都相符的方法,则进行访问控制权限校验。
-
如果通过则返回这个方法的直接引用,查找过程结束;
-
如果不通过,则返回java.lang.IllegalAccessError 异常。
-
-
否则,按照继承关系从上往下依次对 C 的各个父类进行第 2 步的搜索和验证过程。
-
如果始终没有找到合适的方法。则抛出 java.lang.AbstractMethodError异常。
-
具体细讲研究中。。。。