本文主要是介绍[java基础揉碎]动态绑定机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍:
详例:
新建一个父类:
新建一个子类继承父类:
这里有个main方法, 创建了一个向上转型的对象 , 这时因为对象的运行类型是b, 所以下面打印走的b方法得到40 , 30
如果我们将子类的sum注销, 那么调用的这个方法后去找父类, 我们发现父类的sum调用的geti, 此时这个geti在父类子类当中都有, 回去调那个geti, 在此处就发生了动态绑定机制, 此时会去掉子类的geti因为对象的运行类型是子类B, 也就是当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定
如果我们将子类的sum1注销掉, 此时对象去掉的sum1就会走父类的sum1, 父类当中的sum1去调用了属性i, 此时这个属性i在父类子类当中都有, 那么这个i会用哪一个? 会用父类的i, 因为属性不会进行动态绑定,即当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用
这篇关于[java基础揉碎]动态绑定机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!