方法重写的本质

Java语言中方法重写的本质:

1、找到操作数栈顶的第一个元素所执行的对象的实际类型,记作C

2、如果在类型C中找到与常量中的描述符号简单名称都相符的方法,则进行访问权限校验,如果通过则返回这个方法的直接引用,查找过程结束;如果不通过,则返回java.lang.IllegalAccessError异常。

3、否则,按照继承关系从下往上依次对C的各个父类进行第2步的搜索和验证过程。

4、如果始终没有找到合适的方法,则抛出java.lang.AbstractMethodError异常。

IllegalAccessError

程序试图访问或修改一个属性或调用一个方法,这个属性或方法,你没有权限访问。一般的这个会引擎编译器异常,这个错误如果发生在运行时,就说明一个类发生了不兼容的改变。

欢迎批评指正,提出问题,谢谢!
原文地址:https://www.cnblogs.com/xxeleanor/p/13657677.html