mybatis jdk动态代理接口时碰到的继承问题


背景:

基类指针指向派生类对象

仍然调用了基类同名方法

基类方法没有mybatis query注解处理名叫entity对象,再一次看出调用的基类的方法

问题:

1 为什么基类的方法也被mybatis代理了

在 中指出,jdk动态代理使用Class.getMethod方法

getMethods()会获取到本类及所有基类的public方法

2 为什么会出现基类和派生类两个方法,而没有覆盖

?类和?类的?法必须要具有相同的函数名称、参数列表,并且?类的返回值与?类相同或者是?类返回类型的?类型(jdk1.5之后)
--------------------------------------------------------
链接:https://wenku.baidu.com/view/d3dcb0025bfb770bf78a6529647d27284b7337e9.html

 

3 为什么调用基类而不是派生类方法,明明派生类方法的参数范围更小更精准

这与java 重载优先级有点关系,更复杂的是涉及到继承,不研究,应避免,这也是所有改写方法要加@Override的原因